Förstå hur man anpassar utseendet på en WPF-applikation med stilar, control templates och resurser.
Stilar i WPF tillåter dig att definiera återanvändbara egenskaper och visuella inställningar för kontroller. Detta gör det enklare att hålla enhetlig design i hela applikationen.
MainWindow.xaml.<Window.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="LightBlue" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Margin" Value="5" />
</Style>
</Window.Resources>
<StackPanel>
<Button Content="Knapp 1" />
<Button Content="Knapp 2" />
<Button Content="Knapp 3" />
</StackPanel>
Templates gör det möjligt att helt anpassa utseendet på en kontroll. Det finns två huvudtyper:
<Window.Resources>
<ControlTemplate x:Key="RoundButtonTemplate" TargetType="Button">
<Border Background="LightGreen" CornerRadius="15" BorderBrush="Black" BorderThickness="2">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Window.Resources>
<Button Content="Rund Knapp" Template="{StaticResource RoundButtonTemplate}" />
Resurser i WPF används för att lagra återanvändbara objekt som stilar, templates och penslar.
Globala resurser kan definieras i en separat fil, t.ex. App.xaml:
<Application.Resources>
<SolidColorBrush x:Key="PrimaryColor" Color="RoyalBlue" />
</Application.Resources>
Använd sedan resursen i valfri XAML-fil:
<Button Content="Global Färg" Background="{StaticResource PrimaryColor}" />
Dynamiska resurser kan ändras vid körtid:
<Button Content="Dynamisk Färg" Background="{DynamicResource PrimaryColor}" />
Du kan ändra resursen med kod:
this.Resources["PrimaryColor"] = new SolidColorBrush(Colors.Red);
<Style TargetType="TextBox">
<Setter Property="BorderBrush" Value="Gray" />
<Setter Property="FontSize" Value="14" />
<Setter Property="Padding" Value="5" />
</Style>
<DataTemplate x:Key="PersonTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}" FontWeight="Bold" Margin="0,0,5,0" />
<TextBlock Text="{Binding LastName}" />
</StackPanel>
</DataTemplate>
<ListBox ItemsSource="{Binding People}" ItemTemplate="{StaticResource PersonTemplate}" />
I nästa lektion kommer vi att fokusera på händelsehantering och kommandon för att hantera användarinteraktioner effektivt.