Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ernust Reichwein Geändert vor über 11 Jahren
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 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=" <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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.