Textbox error template<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Control.IsEnabled" Value="False"/>
<Condition Property="Control.IsHitTestVisible" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Control.Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
</MultiTrigger>
</Style.Triggers>
</Style>
<Style x:Key="TextBoxErrorToolTipStyle" TargetType="{x:Type Control}" BasedOn="{StaticResource ControlBaseStyle}">
<Style.Setters>
<Setter Property="Control.ContextMenu" Value="{StaticResource TextBoxContextMenu}" />
<Setter Property="Control.HorizontalAlignment" Value="Stretch"/>
<Setter Property="Control.VerticalAlignment" Value="Center"/>
<Setter Property="Control.Margin" Value="3,3"/>
</Style.Setters>
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Validation.HasError" Value="True" />
<Condition Property="IsEnabled" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors).CurrentItem.ErrorContent}"/>
<Setter Property="Validation.ErrorTemplate"
Value="{DynamicResource ValidationErrorTemplate}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
<ControlTemplate x:Key="ValidationErrorTemplate">
<DockPanel LastChildFill="True">
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder Name="rangeErrorAdorner" Margin="-1,-1" />
</Border>
</DockPanel>
</ControlTemplate>
自定义Expander<UserControl x:Class="GenericProfile.CustomerExpander"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="150" d:DesignWidth="450">
<UserControl.Resources>
<ResourceDictionary>
</ResourceDictionary>
</UserControl.Resources>
<Expander
HorizontalAlignment="Left"
VerticalAlignment="Top"
IsExpanded="False"
Height="Auto"
Width="450" BorderBrush="Black" BorderThickness="2">
<Expander.Header>
<Grid Height="Auto" Width="398">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="35"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Language:" Grid.Column="1" VerticalAlignment="Center"/>
<TextBlock Text="English" Grid.Column="3" Visibility="Collapsed"/>
<ComboBox Grid.Column="3" x:Name="languagesCombox" MinWidth="120" HorizontalAlignment="Left" VerticalAlignment="Bottom" SelectionChanged="languageCombox_SelectionChanged" />
<TextBlock Text="×" x:Name="deleteTextBlock" FontSize="20" Foreground="Red" Grid.Column="7" HorizontalAlignment="Right" FontWeight="Black" TextAlignment="Center" MouseLeftButtonDown="deleteTextBlock_MouseLeftButtonDown" />
</Grid>
</Expander.Header>
<Expander.Content>
<Grid Height="116">
<Grid.RowDefinitions>
<RowDefinition Height="15"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="15"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="15" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<TextBlock Text="Description:" Grid.Column="1" Grid.Row="1"/>
<TextBox x:Name="descriptionTextBox" Grid.Column="3" Grid.Row="1" MinWidth="300px" MinHeight="50px" />
<TextBlock Text="Help File:" Grid.Column="1" Grid.Row="3"/>
<TextBox x:Name="helpFilePath" Grid.Column="3" Grid.Row="3" Width="250" HorizontalAlignment="Left" Text="{Binding Path=HelpFilePath,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}}}"/>
<Button Grid.Column="3" Grid.Row="3" x:Name="selectFileBtn" Content="..." Width="24" Height="Auto" HorizontalAlignment="Right" Click="selectFileBtn_Click" />
</Grid>
</Expander.Content>
</Expander>
</UserControl>
虚线边框<UserControl x:Class="CustomControls.CustomAddLanguage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" d:DesignWidth="450" Height="30">
<UserControl.Resources>
<ResourceDictionary>
<Style x:Key="CustomBoarder">
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Border>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="15" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Rectangle Stroke="Gray" Height="30" StrokeThickness="2" StrokeDashArray="4 4" Grid.ColumnSpan="4"
SnapsToDevicePixels="True" RadiusX="10" RadiusY="10"/>
<TextBlock Text="+" Grid.Column="1" Foreground="Gray" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,8" />
<TextBlock Text="Add other language" Foreground="Gray" FontSize="16" Grid.Column="3" HorizontalAlignment="Left" VerticalAlignment="Center" />
</Grid>
</Border>
</UserControl>
自定义DataGrid Column的格式 <!--DataTemplate for Published Date column defined in Grid.Resources. PublishDate is a property on the ItemsSource of type DateTime -->
<DataTemplate x:Key="DateTemplate" >
<StackPanel Width="20" Height="30">
<Border Background="LightBlue" BorderBrush="Black" BorderThickness="1">
<TextBlock Text="{Binding PublishDate, StringFormat={}{0:MMM}}" FontSize="8" HorizontalAlignment="Center" />
</Border>
<Border Background="White" BorderBrush="Black" BorderThickness="1">
<TextBlock Text="{Binding PublishDate, StringFormat={}{0:yyyy}}" FontSize="8" FontWeight="Bold" HorizontalAlignment="Center" />
</Border>
</StackPanel>
</DataTemplate>
<!--DataTemplate for the Published Date column when in edit mode. -->
<DataTemplate x:Key="EditingDateTemplate">
<DatePicker SelectedDate="{Binding PublishDate}" />
</DataTemplate>
<DataGrid Name="DG1" ItemsSource="{Binding}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<!--Custom column that shows the published date-->
<DataGridTemplateColumn Header="Publish Date" CellTemplate="{StaticResource DateTemplate}" CellEditingTemplate="{StaticResource EditingDateTemplate}" />
</DataGrid.Columns>
</DataGrid>