Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wettbewerbstalon ausfüllen und tolle Preise gewinnen!

Ähnliche Präsentationen


Präsentation zum Thema: "Wettbewerbstalon ausfüllen und tolle Preise gewinnen!"—  Präsentation transkript:

1 Wettbewerbstalon ausfüllen und tolle Preise gewinnen!
Nicht vergessen! Wettbewerbstalon ausfüllen und tolle Preise gewinnen! Stempel bei Partner holen und einwerfen! Ziehung heute Abend 19:45 und 20:45 Uhr

2 Presentation_title Die neuen Features im Überblick
Windows Presentation Foundation 4.0 Die neuen Features im Überblick Christian Moser Zühlke AG dd/mm/yyyy, author_alias

3 WPF 4.0 – Viele spannende, neue Funktionen
Presentation_title WPF 4.0 – Viele spannende, neue Funktionen XAML Parser Animation Easing Calendar DatePicker DataGrid XAML 2009 Chart Control Layout rounding Ribbon Text rendering Spell-Check Dictionaries Pixel Shaders 3.0 Cached Composition Visual State Manager Full Trust XBAP TaskBar Integration XBAP/HTML Interop .NET Client Profile Windows 7 API Jumplists Custom ClickOnce UI DataBinding für InputBindings Virtual UI Automation Multitouch Common Dialogs Visual Studio 2010 dd/mm/yyyy, author_alias

4 Ziele von Microsoft für WPF 4.0
Ausbesserung von Schwachpunkten Interne Konsolidierung Wünsche der Community abdecken Produktivität der Entwickler erhöhen Bessere Controls für LoB Applikationen Modernisierung der API Bessere Kompatibilität mit Microsoft Silverlight

5 WPF Roadmap WPF 4.0 2007 2008 2009 2010 WPF 3.5 WPF 3.0 WPF 3.5 SP1
WPF Toolkit 2 VSM Chart WPF Toolkit 1 DataGrid DatePicker WPFToolkit 3 Theme Pack AutoCompleteBox Accordion SL Toolkit 1 TreeView DockPanel WrapPanel SL Toolkit 2 Accordion TimePicker Chart Silverlight 1 Silverlight 3 Silverlight 2 Silverlight 4

6 Nächsten Montag 12 April 2010 4.0

7 <XAML />

8 Ein neuer XAML Stack für alles
.NET 3.5 mscorlib System System.Xml .NET 4.0 WindowsBase PresentationCore PresentationFramework WCF / WF BAML Engine System.Xaml.dll XAML Type Info XAML Engine WCF / WF PresentationFramework XOML Engine XAML Engine BAML Engine PresentationCore WindowsBase XOML Type Info XAML Type Info mscorlib System System.Xml

9 Neue Sprachkonstrukte in XAML 2009
Presentation_title Neue Sprachkonstrukte in XAML 2009 Bessere Namensauflösung mit {x:Reference} Voller Support für Generics {x:TypeArguments} Built-in Types <x:String>, <x:Bool> Beliebige Typen für Dictionary Keys (x:Key ) Events ohne Kompilation (Findet die Methode in der Klasse oder über MarkupExtension) Konstruktoren mit Argumenten {x:Arguments} Factory Methods {x:FactoryMethod} dd/mm/yyyy, author_alias

10 Neuer XAML Parser Bessere Performance Viele BugFixes
Konsistenz zu WCF und WF API zum Laden und Schreiben von XAML Später: Auch für Silverlight

11 XAML Object Model: O-M-V + Types
Xaml Types Xaml <-> Object Umsetzungs- Beschreibung <StackPanel> <Button x:Name="button" Click="foo" Content="Test" /> <Button>Test</Button> <Button> <Button.Content>Test</Button.Content> </Button> </StackPanel> Objects Root Object Collection Members Properties Events Directives (x:Key) Values

12 XAML Node Stream Processing
while reader.read() XamlXmlReader.Read() EndObject Button EndMember Content Value «Test» StartMember Content StartObject Button Xaml Type Xaml Member XamlObjectWriter.Write()

13 Beispiel «Robust XamlLoader»
var reader = new XamlXmlReader("loose.xaml"); var writer = new XamlObjectWriter(reader.SchemaContext); while (reader.Read()) { switch (reader.NodeType) case XamlNodeType.StartObject: if (reader.Type.IsUnknown) continue; break; case XamlNodeType.StartMember: if (reader.Member.IsUnknown) } writer.WriteNode(reader); XAML Node Pump

14 PresentationFramework
...aber WCF / WF PresentationFramework VS2010 BAML Engine Markup Compiler x PresentationCore MarkupCompiler und Designer von VS2010 und Blend unterstützen diese Features noch nicht! Nur für Loose XAML...  WindowsBase System.Xaml.dll XAML Engine XAML Type Info mscorlib System System.Xml

15 Neu Verfügbar: Microsoft XAML Toolkit
Vollständige XAML DOM API XAML FxCop integration SilverlightSchemaContext to parse Silverlight XAML using System.Xaml XamlDomObject rootObject = XamlDomServices.Load("Window1.xaml"); foreach (XamlDomObject domObject in rootObject.DescendantsAndSelf()) { Console.WriteLine(domObject.Type); }

16 Weitere Informationen
PDC 2008 – XAML 2009 PDC XAML Futures Blog von Rob Relyea (XAML Architekt) XAML Toolkit

17 New Controls

18 DataGrid Control Features Auto generation of columns
Demo Features Auto generation of columns Selection of cells and rows Grouping and filtering Frozen columns Column sorting, reordering and resizing Row details Flexible Styling

19 Calendar and DatePicker Control
Demo Features Multiple selection modes Blackout Dates Limitation of displayed date range DisplayModes for Month, Year and Decade

20 Chart Control – WPF Toolkit

21 Ribbon Control – CTP Preview
Presentation_title Ribbon Control – CTP Preview Features Special Ribbon Window All Features of Office 2010 Office 2007 und 2010 Themes Aber: Release erst nach .NET 4.0 - Etwas MVVM unfreundliche API dd/mm/yyyy, author_alias

22 Styling

23 States von Controls Disabled Normal Mouseover Pressed Unfocused

24 Umsetzung in .NET 3.5 <Style TargetType="Button"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Border Background="{TemplateBinding Background}"> <ContentPresenter /> </Border> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="Blue" /> </Trigger> <Trigger Property="IsPressed" Value="True"> <Setter Property="Background" Value="DarkBlue" /> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Background" Value="Gray" /> </Style.Triggers> </Style>

25 Der Visual State Manager
Steuert die Zustände und Übergänge von Controls Verwendet dazu Storyboards Kompatibel zu Silverlight Wechsel zwischen States nur aus Code Internal VisualStateManager.GotoState() External VisualStateManager.GoToElementState() Control Visual State Manager

26 Visual State Manager in XAML
<Border> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="TrafficStates"> <VisualState x:Name="Red"> <Storyboard> <ColorAnimationUsingKeyFrames …> <EasingColorKeyFrame Value="Red"/> </ColorAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Yellow"> <EasingColorKeyFrame Value="Yellow"/> <VisualState x:Name="Green"> <EasingColorKeyFrame Value="Green"/> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </Border>

27 Steuern von States aus XAML
Demo Verwendung der GoToStateAction aus System.Windows.Interactivity xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" <local:TrafficLightControl> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseLeftButtonDown" SourceObject="{Binding ElementName=trafficLightControl}"> <ei:GoToStateAction TargetObject="{Binding ElementName=trafficLightControl}" StateName="Yellow"/> </i:EventTrigger> </i:Interaction.Triggers> </local:TrafficLightControl>

28 Steuern von States aus dem Code
[TemplateVisualState(Name = "Green", GroupName = "TrafficStates")] [TemplateVisualState(Name = "Yellow", GroupName = "TrafficStates")] [TemplateVisualState(Name = "Red", GroupName = "TrafficStates")] public partial class TrafficLightControl : UserControl { private void OnTrafficLightStateChanged(TrafficLight trafficLight) switch (trafficLight) case TrafficLight.Green: VisualStateManager.GoToState(this, "Green", true); break; case TrafficLight.Yellow: VisualStateManager.GoToState(this, "Yellow", true); case TrafficLight.Red: VisualStateManager.GoToState(this, "Red", true); }

29 Designer Support in Expression Blend

30 Animation Easing Machen Animationen «natürlicher»
Verwendung spezieller EasingKeyFrames die eine EasingFunction verwenden <DoubleAnimationUsingKeyFrames … > <DoubleKeyFrame KeyTime="0:0:3" Value="370“ /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames … > <EasingDoubleKeyFrame KeyTime="0:0:3" Value="370"> <EasingDoubleKeyFrame.EasingFunction> <BounceEase EasingMode="EaseOut"/> </EasingDoubleKeyFrame.EasingFunction> </EasingDoubleKeyFrame> </DoubleAnimationUsingKeyFrames>

31 Animation Easing Functions
WPF 4.0 bringt bereits viele EasingFunctions mit Demo

32 Animation Easing in Expression Blend
Expression Blend 4 bietet eine sehr konfortable Unterstützung für Animation Easing

33 Eigene Easing Functions implementieren
class CoolEasingFunction : EasingFunctionBase { protected override double EaseInCore(double normalizedTime) return Math.Abs(Math.Sin(normalizedTime * Math.PI * 2)) * normalizedTime; } protected override Freezable CreateInstanceCore() return new CoolEasingFunction();

34 Schrift in WPF

35 Probleme mit Schrift in .NET 3.5
Kleine Zeichen sind schlecht lesbar Schrift wird beim Animieren unscharf Sobald Transparenz verwendet wird, steht kein ClearType zur Verfügung Es gibt keine Optionen, um das zu steuern

36 Techniken für mehr Lesbarkeit von Schrift
Ohne Tricks Anti-Aliasing Sub-Pixel Rendering Font-Hinting

37 TextFormattingMode TextOptions.TextFormattingMode=Ideal Ideale Position der Buchstaben (Default) TextOptions.TextFormattingMode=Display Buchstaben auf Pixel schieben

38 TextHintingMode Text wird während Animation unscharf
Dies wurde für langsame Animationen gemacht. Font-Hinting wird in dieser Zeit ausgeschaltet TextOptions.TextHintingMode=Auto Wie in .NET 3.5. Text scharf, beim Animieren unscharf TextOptions.TextHintingMode=FixedText Font-Hinting ist immer aktiv TextOptions.TextHintingMode=AnimatedText Font-Hinting ist immer ausgeschaltet

39 TextRendering Mode Aliased GrayScale ClearType <TextBlock TextOptions.TextRenderingMode=Auto />

40 ClearTypeHint ClearType steht für IRTs nicht zur Verfügung:
DrawingBrush VisualBrush Effects Opacity oder OpacityMask ViewPort2DVisual3D Layered Windows (transparent) Grund dafür ist eine Limitation von DirectX In .NET 4.0 kann man der Rendering Engine einen Tipp geben: RenderingOptions.ClearTypeHint=Enabled

41 Eigene Spell-Check Dictionaries
Sprachen: Deutsch, Englisch, Französisch, Spanisch In WPF4 können zusätzliche Wörter hinzugefügt werden. <TextBox SpellCheck.IsEnabled="True" Language="en-US" /> <TextBox SpellCheck.IsEnabled="True" Language="en-US" > <SpellCheck.CustomDictionaries> <sys:Uri>C:\Temp\TechDays.lex</sys:Uri> </SpellCheck.CustomDictionaries> </TextBox> TechDays TechDays.lex

42 Bindable Runs Runs unterstützten nun {Bindings} für den Text
<TextBlock TextWrapping="Wrap" Margin="8"> <Run Text="Herzlich Willkommen," /> <Run Text="{Binding Name}" /> <Run Text="zu den" /> <Run Text="{Binding Event}" /> </TextBlock>

43 Grafik & Rendering

44 Breaking Changes im Bereich Rendering
Schnellere Image-Skalierung (Fant -> bi-linear) BitmapEffects sind jetzt no-ops Keine Hardware Unterstützung mehr für DirectX 7/8 Neue Definition für «Rendering Tier 1» Pixel Shader 2.0 Support und 60 Mbyte Video RAM

45 Unscharfe Elemente in WPF
Images und Geometries werden unscharf dargestellt, wenn die Ecken nicht auf exakten Pixeln liegen SnapToDevicePixels hilft nicht immer, da es nur die Position ändert, nicht die Grösse

46 Layout Rounding Es ist eine Layoutfunktion, keine Grafikfunktion
Demo Es ist eine Layoutfunktion, keine Grafikfunktion Ändert Position und Grösse, so dass die Elemene auf exakten Pixel Positionen liegen Wird vererbt, deshalb auf dem Root Element setzen Kompatibel zur Silverlight 4.0 API <Rectangle UseLayoutRounding="True" Canvas.Left="11.11" Canvas.Top="11.11" Width="20.22" Height="30.33" />

47 Pixel Shaders 3.0 Support Kein Software fallback, da viel Komplexer
2.0 -> 65 Instructions 3.0 -> Instructions Würde in Software viel zu lange rechnen! Expression Blend liefert 16 PixelShader Effects mit

48 Cached Composition Das Rastern von Vektor Grafiken nach Bitmaps ist aufwändig und langsam Caching eines VisualTrees in ein Bitmap steigert die Rendering Performance erheblich Nachteile: Braucht mehr Video Memory Effects können nicht gecached werden Der ganze Sub-Tree muss neu gezeichnet werden <Canvas.CacheMode> <BitmapCache RenderAtScale="4" EnableClearType="True" SnapsToDevicePixels="True" /> </Canvas.CacheMode>

49 Selection- and Caret-Brush
Selection Brush Caret Brush <TextBox SelectionOpacity="0.4"> <TextBox.SelectionBrush> <LinearGradientBrush> <GradientStop Offset="0" Color="Green" /> <GradientStop Offset="1" Color="Blue" /> </LinearGradientBrush> </TextBox.SelectionBrush> </TextBox> <TextBox CaretBrush="Red" />

50 Data Binding

51 InputBinding unterstützt {Binding}
InputBindings sind neu Freezables und unterstützen {Binding} KeyBinding MouseBinding <Window.InputBindings> <KeyBinding Key="F1" Command="{Binding HelpCommand}" /> </Window.InputBindings>

52 Binding – Value re-read
Wird der Wert eines Properties nach dem Setzen geändert, wird er vom {Binding} neu gelesen <TextBox Text="{Binding Name}" /> public class Customer { private string _name; public string Name get { return _name; } set { _name = value.ToUpper(); } } Demo .NET 3.5 Demo .NET 4.0

53 Binding – SetCurrentValue()
Der Aufruf von SetValue() überschreibt den lokalen Wert eines DependencyProperties Ein {Binding} ist im lokalen Wert gespeichert und wird dadurch auch überschrieben  SetCurrentValue() überschreibt den Wert nur temporär, ein existierendes {Binding} bleibt dadurch erhalten. Demo

54 XBAP

55 Full Trust XBAP In .NET 3.5 erschien eine «Trust Not Granted» Exception, wenn man versuchte eine Full-Trust XBAP zu starten. Komplizierter Workaround mit Zertifikaten war möglich In .NET 4.0 erscheint ein Dialog, der die Rechte vom Benutzer anfragt

56 XBAP <-> HTML Interop
XBAP Applikationen sind oft in einer HTML Seite eingebettet. Es ist deshalb ein normaler Use Case, dass man mit der umgebenden Seite interagieren möchte. In WPF 4 ist dies nun möglich dynamic hostScript = BrowserInteropHelper.HostScript; hostScript.ShowMessage("Hello"); function ShowMessage(text) { alert(text); }

57 Multi-Touch

58 Controls with integrated Touch Support Manipulation & Gesture Events
Multi-Touch API Controls with integrated Touch Support Manipulation & Gesture Events Raw Touch Events

59 Touch-Enabled Controls Manipulation & Gesture Events
Raw Touch Events Touch-Enabled Controls Manipulation & Gesture Events Raw Touch Events Touch.FrameReported += OnFrameReported; void OnFrameReported(object sender, TouchFrameEventArgs e) { var touchPoint = e.GetPrimaryTouchPoint(this); Point position = touchPoint.Position; Size touchSize = touchPoint.Size; }

60 Touch-Enabled Controls Manipulation & Gesture Events
Manipulation Events Touch-Enabled Controls Manipulation & Gesture Events Raw Touch Events canvas.OnManipulationStarted += (s,e) => e.ManipulationContainer = canvas; Canvas private OnManipulationDelta(object sender EventArgs e) { } <Image IsManipulationEnabled=True />

61 Manipulation Events Starting Started Delta Inertia Starting Completed
Touch Down (Initial) Touch Move Touch Up (All) Starting Started Delta Inertia Starting Completed Initialize: Mode Container Pivot StartInertia() StartInertia() Completed()

62 Manipulation Events - Intertia
ManipulationInertiaStarting EventArgs Properties Units TranslationBehavior InitialVelocity 1/96th DIP per millisec DesiredDeceleration 1/96th DIP per millisec^2 DesiredDisplacement 1/96th DIP RotationBehavior Degrees per millisec Decrees per millisec^2 DesiredRotation Degrees ExpansionBehavior InitialRadius DesiredExpansion 1/96th DIPS

63 Touch-Enabled Controls Manipulation & Gesture Events
Raw Touch Events <Canvas StylusSystemGesture="OnGesture" /> void OnGesture(object sender, StylusSystemGestureEventArgs e) { switch( e.SystemGesture ) case SystemGesture.Flick: break; case SystemGesture.Tap: }

64 Windows 7 Gestures

65 Windows 7 Gestures II

66 Touch-Enabled Controls
Manipulation & Gesture Events Raw Touch Events ScrollViewer unterstützt neu Touch-Bedienung Weitere Control im Surface SDK frei verfügbar SurfaceButton SurfaceSlider SurfaceInkCanvas SurfaceCheckBox SurfaceListBox SurfaceScrollbar <ScrollViewer PanningMode="Both" PanningDeceleration="10" PanningRatio="20" /> Surface SDK Download Link

67 Neue Common Dialogs unter Vista/Win7
.NET 3.5 .NET 4.0

68 Windows 7 Taskbar Integration

69 Task Bar Features Thumbnail Thumb Buttons Icon Overlay
Progress Indicator <Window.TaskbarItemInfo> <TaskbarItemInfo Overlay="images/stop.png" ThumbnailClipMargin="8" ProgressState="Normal" ProgressValue="50" Description="Taskbar Item Info Sample"> <TaskbarItemInfo.ThumbButtonInfos> <ThumbButtonInfoCollection> <ThumbButtonInfo DismissWhenClicked="False" Command="MediaCommands.Play" Description="Play" ImageSource="play.png"/> </ThumbButtonInfoCollection> </TaskbarItemInfo.ThumbButtonInfos> </TaskbarItemInfo> </Window.TaskbarItemInfo>

70 Task Bar Features II Jumplists
<Application xmlns:s="clr-namespace:System.Windows.Shell;assembly=…"> <s:JumpList.JumpList> <s:JumpList ShowRecentCategory="True" ShowFrequentCategory="True"> <s:JumpTask Title="Notepad" Description="Launch Notepad" ApplicationPath="notepad.exe" WorkingDirectory="C:\temp" Arguments="ReleaseNotes.txt" IconResourcePath="notepad.exe"/> </s:JumpList> </s:JumpList.JumpList> </Application>

71 Deployment & Testing

72 New .NET 4.0 Client Profile Nur 30 MByte gross
Presentation_title New .NET 4.0 Client Profile Nur 30 MByte gross Unterstützt neu alle Plattformen ab Windows XP Redistributable Version verfügbar Kann neu trotz vorhandenem .NET installiert werden neu zwei Einträge unter Software: «Client Profile» und «Extended» (upgrade to full) Bessere Unterstützung in Visual Studio 2010 dd/mm/yyyy, author_alias

73 Verbesserte UIAutomation
ItemsContainerPattern für den Zugriff auf virtuelle Listen VirtualizedItemPattern zum Materialisieren von virtuellen Elementen SynchronizedInputPattern zum Feststellen, ob ein Event sein ZielElement erreicht hat

74 Visual Studio & Blend

75 Visual Studio 2010 – Cider Designer
Interaktiver Designer für Silverlight Wizard zum automatischen Erstellen von Formularen von einer Datenquelle Support für mehrere .NET Versionen Einfacheres Layouten Layout von Grid / Control Sizing Editor für Brushes Bessererer Umgang mit App-Level {StaticResources}

76 Expression Blend 4 Preview
Kann VisualStudio 2010 und 2008 Solutions öffnen Unterstützung für .NET 4.0 und Silverlight 4.0 Bessere Unterstützung für MVVM Pattern CallMethodAction InvokeCommandAction

77 WPF 4.0 – Viele spannende, neue Funktionen
Presentation_title WPF 4.0 – Viele spannende, neue Funktionen XAML Parser Animation Easing Calendar DatePicker DataGrid XAML 2009 Chart Control Layout rounding Ribbon Text rendering Spell-Check Dictionaries Pixel Shaders 3.0 Cached Composition Visual State Manager Full Trust XBAP TaskBar Integration XBAP/HTML Interop .NET Client Profile Windows 7 API Jumplists Custom ClickOnce UI DataBinding für InputBindings Virtual UI Automation Multitouch Common Dialogs Visual Studio 2010 dd/mm/yyyy, author_alias

78 Weitere Informationen
Blog: Mail:

79 Presentation_title dd/mm/yyyy, author_alias


Herunterladen ppt "Wettbewerbstalon ausfüllen und tolle Preise gewinnen!"

Ähnliche Präsentationen


Google-Anzeigen