|
|
|
@ -1,6 +1,7 @@ |
|
|
|
<UserControl x:Class="Microsoft.Windows.Controls.RichTextBoxFormatBar" |
|
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
|
|
xmlns:extToolkit="clr-namespace:Microsoft.Windows.Controls" |
|
|
|
Background="Transparent" |
|
|
|
IsTabStop="False" |
|
|
|
x:Name="_window"> |
|
|
|
@ -11,7 +12,7 @@ |
|
|
|
<UserControl.Resources> |
|
|
|
|
|
|
|
<Style TargetType="{x:Type Separator}" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}"/> |
|
|
|
|
|
|
|
|
|
|
|
<ControlTemplate x:Key="ThumbControlTemplate" TargetType="{x:Type Thumb}"> |
|
|
|
<Border Background="Transparent" Cursor="Hand" ToolTip="Click to Drag"> |
|
|
|
<StackPanel VerticalAlignment="Center" Width="75"> |
|
|
|
@ -32,7 +33,7 @@ |
|
|
|
</Line> |
|
|
|
</StackPanel> |
|
|
|
</Border> |
|
|
|
</ControlTemplate> |
|
|
|
</ControlTemplate> |
|
|
|
|
|
|
|
<SolidColorBrush x:Key="MouseOverBorderBrush" Color="#FFFFB700" /> |
|
|
|
<LinearGradientBrush x:Key="MouseOverBackgroundBrush" StartPoint="0,0" EndPoint="0,1" > |
|
|
|
@ -145,6 +146,186 @@ |
|
|
|
</Setter> |
|
|
|
</Style> |
|
|
|
|
|
|
|
<Style x:Key="FontColorButtonStyle" TargetType="{x:Type ToggleButton}"> |
|
|
|
<Setter Property="Background" Value="Transparent"/> |
|
|
|
<Setter Property="BorderBrush" Value="Transparent"/> |
|
|
|
<Setter Property="BorderThickness" Value="1"/> |
|
|
|
<Setter Property="FocusVisualStyle" Value="{x:Null}"/> |
|
|
|
<Setter Property="Height" Value="22" /> |
|
|
|
<Setter Property="HorizontalContentAlignment" Value="Center"/> |
|
|
|
<Setter Property="ToolTipService.InitialShowDelay" Value="900"/> |
|
|
|
<Setter Property="ToolTipService.ShowDuration" Value="20000"/> |
|
|
|
<Setter Property="ToolTipService.BetweenShowDelay" Value="0"/> |
|
|
|
<Setter Property="Template"> |
|
|
|
<Setter.Value> |
|
|
|
<ControlTemplate TargetType="{x:Type ToggleButton}"> |
|
|
|
<Grid SnapsToDevicePixels="True"> |
|
|
|
<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/> |
|
|
|
<Border x:Name="MiddleBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2"> |
|
|
|
<Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2" Padding="{TemplateBinding Padding}"> |
|
|
|
<Grid> |
|
|
|
<Grid.ColumnDefinitions> |
|
|
|
<ColumnDefinition Width="*"/> |
|
|
|
<ColumnDefinition /> |
|
|
|
</Grid.ColumnDefinitions> |
|
|
|
|
|
|
|
<Grid> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/FontColorPicker16.png" Width="16" Height="16" /> |
|
|
|
<Rectangle Grid.Row="1" Fill="{TemplateBinding Background}" Height="4" Margin="0,12,0,0" /> |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Path Grid.Column="1" Width="7" Height="4" |
|
|
|
Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000"/> |
|
|
|
</Grid> |
|
|
|
</Border> |
|
|
|
</Border> |
|
|
|
</Grid> |
|
|
|
<ControlTemplate.Triggers> |
|
|
|
<Trigger Property="IsMouseOver" Value="True"> |
|
|
|
<Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource MouseOverBackgroundBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource MouseOverBorderBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<Trigger Property="IsEnabled" Value="False"> |
|
|
|
<Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<Trigger Property="IsChecked" Value="True"> |
|
|
|
<Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource CheckedBackgroundBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource CheckedBorderBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="InnerBorder"> |
|
|
|
<Setter.Value> |
|
|
|
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> |
|
|
|
<GradientStop Color="#FFE7CBAD" Offset="0"/> |
|
|
|
<GradientStop Color="#FFF7D7B5" Offset="0.1"/> |
|
|
|
<GradientStop Color="#FFFFD38C" Offset="0.36"/> |
|
|
|
<GradientStop Color="#FFFFC75A" Offset="0.36"/> |
|
|
|
<GradientStop Color="#FFFFEFA5" Offset="1"/> |
|
|
|
</LinearGradientBrush> |
|
|
|
</Setter.Value> |
|
|
|
</Setter> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<Trigger Property="IsPressed" Value="True"> |
|
|
|
<Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource PressedBackgroundBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource PressedBorderBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="InnerBorder" Value="Transparent"/> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<MultiTrigger> |
|
|
|
<MultiTrigger.Conditions> |
|
|
|
<Condition Property="IsChecked" Value="True"/> |
|
|
|
<Condition Property="IsMouseOver" Value="True"/> |
|
|
|
</MultiTrigger.Conditions> |
|
|
|
<Setter Property="Background" TargetName="MiddleBorder"> |
|
|
|
<Setter.Value> |
|
|
|
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> |
|
|
|
<GradientStop Color="#40FFFEFE" Offset="0"/> |
|
|
|
<GradientStop Color="#40FFFEFE" Offset="0.39"/> |
|
|
|
<GradientStop Color="#20FFCE68" Offset="0.39"/> |
|
|
|
<GradientStop Color="#20FFCE68" Offset="0.69"/> |
|
|
|
<GradientStop Color="#10FFFFFF" Offset="1"/> |
|
|
|
</LinearGradientBrush> |
|
|
|
</Setter.Value> |
|
|
|
</Setter> |
|
|
|
</MultiTrigger> |
|
|
|
</ControlTemplate.Triggers> |
|
|
|
</ControlTemplate> |
|
|
|
</Setter.Value> |
|
|
|
</Setter> |
|
|
|
</Style> |
|
|
|
|
|
|
|
<Style x:Key="FontBackgrounColorButtonStyle" TargetType="{x:Type ToggleButton}"> |
|
|
|
<Setter Property="Background" Value="White"/> |
|
|
|
<Setter Property="BorderBrush" Value="Transparent"/> |
|
|
|
<Setter Property="BorderThickness" Value="1"/> |
|
|
|
<Setter Property="FocusVisualStyle" Value="{x:Null}"/> |
|
|
|
<Setter Property="Height" Value="22" /> |
|
|
|
<Setter Property="HorizontalContentAlignment" Value="Center"/> |
|
|
|
<Setter Property="ToolTipService.InitialShowDelay" Value="900"/> |
|
|
|
<Setter Property="ToolTipService.ShowDuration" Value="20000"/> |
|
|
|
<Setter Property="ToolTipService.BetweenShowDelay" Value="0"/> |
|
|
|
<Setter Property="Template"> |
|
|
|
<Setter.Value> |
|
|
|
<ControlTemplate TargetType="{x:Type ToggleButton}"> |
|
|
|
<Grid SnapsToDevicePixels="True"> |
|
|
|
<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/> |
|
|
|
<Border x:Name="MiddleBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2"> |
|
|
|
<Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2" Padding="{TemplateBinding Padding}"> |
|
|
|
<Grid> |
|
|
|
<Grid.ColumnDefinitions> |
|
|
|
<ColumnDefinition Width="*"/> |
|
|
|
<ColumnDefinition /> |
|
|
|
</Grid.ColumnDefinitions> |
|
|
|
|
|
|
|
<Grid> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/TextHighlightColorPicker16.png" Width="16" Height="16" /> |
|
|
|
<Rectangle Grid.Row="1" Fill="{TemplateBinding Background}" Height="4" Margin="0,12,0,0" /> |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Path Grid.Column="1" Width="7" Height="4" |
|
|
|
Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000"/> |
|
|
|
</Grid> |
|
|
|
</Border> |
|
|
|
</Border> |
|
|
|
</Grid> |
|
|
|
<ControlTemplate.Triggers> |
|
|
|
<Trigger Property="IsMouseOver" Value="True"> |
|
|
|
<Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource MouseOverBackgroundBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource MouseOverBorderBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<Trigger Property="IsEnabled" Value="False"> |
|
|
|
<Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<Trigger Property="IsChecked" Value="True"> |
|
|
|
<Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource CheckedBackgroundBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource CheckedBorderBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="InnerBorder"> |
|
|
|
<Setter.Value> |
|
|
|
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> |
|
|
|
<GradientStop Color="#FFE7CBAD" Offset="0"/> |
|
|
|
<GradientStop Color="#FFF7D7B5" Offset="0.1"/> |
|
|
|
<GradientStop Color="#FFFFD38C" Offset="0.36"/> |
|
|
|
<GradientStop Color="#FFFFC75A" Offset="0.36"/> |
|
|
|
<GradientStop Color="#FFFFEFA5" Offset="1"/> |
|
|
|
</LinearGradientBrush> |
|
|
|
</Setter.Value> |
|
|
|
</Setter> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<Trigger Property="IsPressed" Value="True"> |
|
|
|
<Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource PressedBackgroundBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource PressedBorderBrush}"/> |
|
|
|
<Setter Property="BorderBrush" TargetName="InnerBorder" Value="Transparent"/> |
|
|
|
</Trigger> |
|
|
|
|
|
|
|
<MultiTrigger> |
|
|
|
<MultiTrigger.Conditions> |
|
|
|
<Condition Property="IsChecked" Value="True"/> |
|
|
|
<Condition Property="IsMouseOver" Value="True"/> |
|
|
|
</MultiTrigger.Conditions> |
|
|
|
<Setter Property="Background" TargetName="MiddleBorder"> |
|
|
|
<Setter.Value> |
|
|
|
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> |
|
|
|
<GradientStop Color="#40FFFEFE" Offset="0"/> |
|
|
|
<GradientStop Color="#40FFFEFE" Offset="0.39"/> |
|
|
|
<GradientStop Color="#20FFCE68" Offset="0.39"/> |
|
|
|
<GradientStop Color="#20FFCE68" Offset="0.69"/> |
|
|
|
<GradientStop Color="#10FFFFFF" Offset="1"/> |
|
|
|
</LinearGradientBrush> |
|
|
|
</Setter.Value> |
|
|
|
</Setter> |
|
|
|
</MultiTrigger> |
|
|
|
</ControlTemplate.Triggers> |
|
|
|
</ControlTemplate> |
|
|
|
</Setter.Value> |
|
|
|
</Setter> |
|
|
|
</Style> |
|
|
|
|
|
|
|
</UserControl.Resources> |
|
|
|
|
|
|
|
<Border CornerRadius="3" BorderThickness="1" BorderBrush="Gray" Background="WhiteSmoke"> |
|
|
|
@ -160,41 +341,79 @@ |
|
|
|
|
|
|
|
<StackPanel Grid.Row="1"> |
|
|
|
<StackPanel Orientation="Horizontal"> |
|
|
|
<ComboBox x:Name="_cmbFontFamilies" IsEditable="True" Width="110" |
|
|
|
SelectionChanged="FontFamily_SelectionChanged"/> |
|
|
|
<ComboBox x:Name="_cmbFontSizes" IsEditable="True" Width="45" |
|
|
|
SelectionChanged="FontSize_SelectionChanged"/> |
|
|
|
<ComboBox x:Name="_cmbFontFamilies" IsEditable="True" Width="100" |
|
|
|
SelectionChanged="FontFamily_SelectionChanged" |
|
|
|
ToolTip="Font Family"/> |
|
|
|
|
|
|
|
<ComboBox x:Name="_cmbFontSizes" IsEditable="True" Width="43" |
|
|
|
SelectionChanged="FontSize_SelectionChanged" |
|
|
|
ToolTip="Font Size"/> |
|
|
|
|
|
|
|
<Separator /> |
|
|
|
|
|
|
|
<ToggleButton x:Name="_btnBullets" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="EditingCommands.ToggleBullets" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
Click="Bullets_Clicked" |
|
|
|
ToolTip="Bullets"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Bullets16.png" /> |
|
|
|
</ToggleButton> |
|
|
|
|
|
|
|
<ToggleButton x:Name="_btnNumbers" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="EditingCommands.ToggleNumbering" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
Click="Numbers_Clicked" |
|
|
|
ToolTip="Numbering"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Numbering16.png" /> |
|
|
|
</ToggleButton> |
|
|
|
|
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
<StackPanel Orientation="Horizontal" Margin="0,3,0,0"> |
|
|
|
<ToggleButton x:Name="_btnBold" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="EditingCommands.ToggleBold" CommandTarget="{Binding ElementName=_window, Path=Target}"> |
|
|
|
Command="EditingCommands.ToggleBold" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
ToolTip="Bold"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Bold16.png" /> |
|
|
|
</ToggleButton> |
|
|
|
<ToggleButton x:Name="_btnItalic" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="{x:Static EditingCommands.ToggleItalic}" CommandTarget="{Binding ElementName=_window, Path=Target}"> |
|
|
|
Command="{x:Static EditingCommands.ToggleItalic}" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
ToolTip="Italic"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Italic16.png" /> |
|
|
|
</ToggleButton> |
|
|
|
<ToggleButton x:Name="_btnUnderline" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="{x:Static EditingCommands.ToggleUnderline}" CommandTarget="{Binding ElementName=_window, Path=Target}"> |
|
|
|
Command="{x:Static EditingCommands.ToggleUnderline}" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
ToolTip="Underline"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Underline16.png" /> |
|
|
|
</ToggleButton> |
|
|
|
|
|
|
|
<Separator /> |
|
|
|
|
|
|
|
<RadioButton x:Name="_btnAlignLeft" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="{x:Static EditingCommands.AlignLeft}" CommandTarget="{Binding ElementName=_window, Path=Target}" > |
|
|
|
Command="{x:Static EditingCommands.AlignLeft}" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
ToolTip="Align Left"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/LeftAlign16.png" /> |
|
|
|
</RadioButton> |
|
|
|
<RadioButton x:Name="_btnAlignCenter" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="{x:Static EditingCommands.AlignCenter}" CommandTarget="{Binding ElementName=_window, Path=Target}" > |
|
|
|
Command="{x:Static EditingCommands.AlignCenter}" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
ToolTip="Align Center"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/CenterAlign16.png" /> |
|
|
|
</RadioButton> |
|
|
|
<RadioButton x:Name="_btnAlignRight" Style="{StaticResource FormatBarToggleButtonStyle}" |
|
|
|
Command="{x:Static EditingCommands.AlignRight}" CommandTarget="{Binding ElementName=_window, Path=Target}" > |
|
|
|
Command="{x:Static EditingCommands.AlignRight}" CommandTarget="{Binding ElementName=_window, Path=Target}" |
|
|
|
ToolTip="Align Right"> |
|
|
|
<Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/RightAlign16.png" /> |
|
|
|
</RadioButton> |
|
|
|
|
|
|
|
<Separator /> |
|
|
|
|
|
|
|
<extToolkit:ColorPicker x:Name="_cmbFontBackgroundColor" BorderThickness="0" |
|
|
|
ButtonStyle="{StaticResource FontBackgrounColorButtonStyle}" |
|
|
|
SelectedColorChanged="FontBackgroundColor_SelectedColorChanged" |
|
|
|
ToolTip="Text Highlight Color"/> |
|
|
|
|
|
|
|
<extToolkit:ColorPicker x:Name="_cmbFontColor" BorderThickness="0" |
|
|
|
ButtonStyle="{StaticResource FontColorButtonStyle}" |
|
|
|
SelectedColorChanged="FontColor_SelectedColorChanged" |
|
|
|
ToolTip="Font Color"/> |
|
|
|
|
|
|
|
</StackPanel> |
|
|
|
|
|
|
|
</StackPanel> |
|
|
|
|