Silverlight 1.1 je Silverlight 2.0
30 listopadu 07 09:07 dop. | zajda | 0 Comments   

Tim Sneath na svém blogu oznámil, že dochází k přejmenování dalšího release technologie Silverlight ze Silverlight 1.1 na Silverlight 2.0. Důvodem je, že vývojáři Silverlightu v další verzi přidají tolik nové funkčnosti, že si to zaslouží major release.

Co bude v Silverlight 2.0 nového? Scott Guthrie na svém blogu zveřejnil feature set, který v příštím preview můžeme očekávát:

 

  • WPF UI Framework: The current Silverlight Alpha release only includes basic controls support and a managed API for UI drawing.  The next public Silverlight preview will add support for the higher level features of the WPF UI framework.  These include: the extensible control framework model, layout manager support, two-way data-binding support, and control template and skinning support.  The WPF UI Framework features in Silverlight will be a compatible subset of the WPF UI Framework features in last week's .NET Framework 3.5 release.

  • Rich Controls: Silverlight will deliver a rich set of controls that make building Rich Internet Applications much easier.  The next Silverlight preview release will add support for core form controls (textbox, checkbox, radiobutton, etc), built-in layout management controls (StackPanel, Grid, etc), common functionality controls (TabControl, Slider, ScrollViewer, ProgressBar, etc) and data manipulation controls (DataGrid, etc).

  • Rich Networking Support: Silverlight will deliver rich networking support.  The next Silverlight preview release will add support for REST, POX, RSS, and WS* communication.  It will also add support for cross domain network access (so that Silverlight clients can access resources and data from any trusted source on the web).

  • Rich Base Class Library Support: Silverlight will include a rich .NET base class library of functionality (collections, IO, generics, threading, globalization, XML, local storage, etc).  The next Silverlight preview release will also add built-in support for LINQ to XML and richer HTML DOM API integration.

Je vidět, že se máme na co těšit. Velmi zajímavý je vzájemně kompatibilní control framework. Další verze Silverlight umožní vývojářům budování RIA aplikací s použitím zkušeností a praktik, které důvěrně znají z WPF. Nemluvě o podpoře templates, two-way bindingu atd.

 

Vedeno pod: ,
WPF Win32 Interop
30 srpna 07 09:23 dop. | zajda | 0 Comments   

Na www.codeplex.com se objevil velmi zajímavý projekt. Jedná se o WPF komponentu, která nám umožní hostovat Win32 controls bez ztráty interakce a s možností přidávání dalších WPF záležitostí.

Více na http://www.codeplex.com/WPFWin32Renderer

 

Vedeno pod:
Background property u layout panelů WPF
23 července 07 04:51 odp. | zajda | 1 Comments   

Při implementaci drag n drop z mé user control, kde je cílem drop operace Canvas, jsem narazil na zajímavý problém. Nemohl jsem zaboha donutit Canvas aby mi drop povolil. Po zoufalém bádání jsem přišel na zajímavou věc. Podle mě se určitě nejedná o bug, nýbrž featuru, která by si zasloušila lepší zmínku.

Pokud nadefinuju Canvas takto: 

<Canvas AllowDrop="True" />

nedostanu na něj drop ani kdybych se pomátl. Pokus omyl mě přivedl k jednoduchému řešení (mohlo to trvat ale daleko déle).

<Canvas AllowDrop="True" Background="#00FFFFFF"/>

Pokud nastavíme panelu jako background nějaký brush, v tomto případě bílá s alphou 0, vše funguje jak má.

 Toho samého je potřeba se vyvarovat i v jiných případech, například při vytváření ControlTemplate pro Button. Pokud budu chtít složit tlačítko z gridu a dejme tomu cesty, vytvářející nějaký objekt, nebude hit test na grid fungovat, dokud mu nenastavím patřičný background.

Cítím, že to tak má být, dává to i smysl, ale pokud by někdo vědel přesně proč, tak se to rád dozvím.  

 

 

Vedeno pod:
Dědičnost visuálních prvků ve WPF
15 května 07 12:30 odp. | zajda | 4 Comments   

Ve WinForms jsem se přiučil, že se občas velmi hodí podědit jeden formuář od druhého a pouze mu přidat nějakou tu drobnost. Když jsem na tuto potřebu narazil ve WPF, rozhodl jsem se, že jednoduše odvodím jednu stránku (Page) od druhé.

Tak, co si nejprve vytvořit BasePage, obsahující základní logiku a vzhled.

 

public partial class BasePage : Page

{

    public BasePage()

    {

        InitializeComponent();

    }

}

Hurá, povedlo se. Vytvoření další stránky, odvozené od typu BasePage:

<local:BasePage x:Class="Program.ChildPage"

 xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation

 xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml

 xmlns:local="clr-namespace:Program;assembly=Program">

</local:BasePage>

a odpovídající kód v C#

public partial class ChildPage : BasePage

{

   public ChildPage()

   {

   }

}

Vede pouze k následující chybě: Program.BasePage cannot be the root of a XAML file because it was defined using XAML.

Po chvíli bádání, jsem objevil dvě zásadní věci:

1. Stávající verze Windows Presentation Foundation nepodporuje dědění prvků definovaných pomocí XAML.

2. Pokud chceme náš prvek definovaný pomocí XAML odvodit od prvku jiného, musí být rodič složen pouze a jenom z čistého C# kódu, to nám umožňuje definovat v rodičovské třídě společné metody a různé "utilities" činnosti. Můžeme samozřejmě nadefinovat i vzhled, ovšem to by jaksi popíralo celý koncept a smysl XAMLu a deklarativního programování. Nezbývá než doufat, že v další verzi WPF bude tato možnost zavedena.

Naše rodičovská třída tedy může vypadat takto:

public abstract class BasePage : Page

{

}

Použití v XAMLu je poté stejné jako v předchozím pokusu.  

Absence takové funkčnosti byla u mě čárou přes rozpočet. Takže kdo se bez toho neobejdete, začněte plakat (aspoň prozatím).

Vedeno pod:
Vyvojar.cz na prodej!