add FlowDocumentScrollViewer style

This commit is contained in:
NaBian committed 2020-01-16 23:49:02 +08:00
1 parent 00a53dbb01
commit 02e8fc4a13
28 files changed
+299 -26

No files matched your search

@@ -18,5 +18,14 @@ namespace HandyControl.Controls
public static void SetPlacement(DependencyObject element, TipPlacement value) => element.SetValue(PlacementProperty, value);
public static TipPlacement GetPlacement(DependencyObject element) => (TipPlacement) element.GetValue(PlacementProperty);
public static readonly DependencyProperty StringFormatProperty = DependencyProperty.RegisterAttached(
"StringFormat", typeof(string), typeof(TipElement), new PropertyMetadata("#0.0"));
public static void SetStringFormat(DependencyObject element, string value)
=> element.SetValue(StringFormatProperty, value);
public static string GetStringFormat(DependencyObject element)
=> (string) element.GetValue(StringFormatProperty);
}
}
@@ -394,6 +394,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Themes\Styles\FlowDocumentScrollViewer.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Themes\Styles\StatusBar.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -320,5 +320,23 @@ namespace HandyControl.Properties.Langs {
return ResourceManager.GetString("Yes", resourceCulture);
}
}
/// <summary>
/// 查找类似 放大 的本地化字符串。
/// </summary>
public static string ZoomIn {
get {
return ResourceManager.GetString("ZoomIn", resourceCulture);
}
}
/// <summary>
/// 查找类似 缩小 的本地化字符串。
/// </summary>
public static string ZoomOut {
get {
return ResourceManager.GetString("ZoomOut", resourceCulture);
}
}
}
}
@@ -184,4 +184,10 @@
<data name="No" xml:space="preserve">
<value>No</value>
</data>
<data name="ZoomIn" xml:space="preserve">
<value>Zoom in</value>
</data>
<data name="ZoomOut" xml:space="preserve">
<value>Zoom out</value>
</data>
</root>
@@ -184,4 +184,10 @@
<data name="No" xml:space="preserve">
<value>خیر</value>
</data>
<data name="ZoomIn" xml:space="preserve">
<value>Zoom in</value>
</data>
<data name="ZoomOut" xml:space="preserve">
<value>Zoom out</value>
</data>
</root>
@@ -204,4 +204,10 @@
<data name="No" xml:space="preserve">
<value>Non</value>
</data>
<data name="ZoomIn" xml:space="preserve">
<value>Zoom in</value>
</data>
<data name="ZoomOut" xml:space="preserve">
<value>Zoom out</value>
</data>
</root>
@@ -204,4 +204,10 @@
<data name="Yes" xml:space="preserve">
<value>네</value>
</data>
<data name="ZoomIn" xml:space="preserve">
<value>Zoom in</value>
</data>
<data name="ZoomOut" xml:space="preserve">
<value>Zoom out</value>
</data>
</root>
@@ -184,4 +184,10 @@
<data name="No" xml:space="preserve">
<value>否</value>
</data>
<data name="ZoomIn" xml:space="preserve">
<value>放大</value>
</data>
<data name="ZoomOut" xml:space="preserve">
<value>缩小</value>
</data>
</root>
@@ -72,7 +72,7 @@
<ControlTemplate x:Key="TipSliderThumbHorizontalTop" TargetType="Thumb">
<controls:InternalCanvas>
<Label Name="LabelValue" Opacity="0" Canvas.Bottom="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Bottom="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -103,7 +103,7 @@
<ControlTemplate x:Key="TipSliderThumbHorizontalBottom" TargetType="Thumb">
<controls:InternalCanvas>
<Label Name="LabelValue" Opacity="0" Canvas.Top="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Top="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -134,7 +134,7 @@
<ControlTemplate x:Key="TipSliderThumbVerticalLeft" TargetType="Thumb">
<controls:InternalCanvas Orientation="Vertical">
<Label Name="LabelValue" Opacity="0" Canvas.Right="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Right="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -165,7 +165,7 @@
<ControlTemplate x:Key="TipSliderThumbVerticalRight" TargetType="Thumb">
<controls:InternalCanvas Orientation="Vertical">
<Label Name="LabelValue" Opacity="0" Canvas.Left="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Left="28" Style="{StaticResource LabelPrimary}" Content="{Binding Value,RelativeSource={RelativeSource AncestorType=Slider}}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -223,14 +223,14 @@
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="TopLeft"/>
<Condition Property="controls:TipElement.Placement" Value="Top"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbHorizontalTop}"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="BottomRight"/>
<Condition Property="controls:TipElement.Placement" Value="Bottom"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbHorizontalBottom}"/>
@@ -280,14 +280,14 @@
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="TopLeft"/>
<Condition Property="controls:TipElement.Placement" Value="Left"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbVerticalLeft}"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="BottomRight"/>
<Condition Property="controls:TipElement.Placement" Value="Right"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="Thumb" Value="{StaticResource TipSliderThumbVerticalRight}"/>
@@ -709,7 +709,7 @@
<ControlTemplate x:Key="TipRangeSliderThumbHorizontalTop" TargetType="controls:RangeThumb">
<controls:InternalCanvas>
<Label Name="LabelValue" Opacity="0" Canvas.Bottom="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Bottom="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -740,7 +740,7 @@
<ControlTemplate x:Key="TipRangeSliderThumbHorizontalBottom" TargetType="controls:RangeThumb">
<controls:InternalCanvas>
<Label Name="LabelValue" Opacity="0" Canvas.Top="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Top="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Bottom="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -771,7 +771,7 @@
<ControlTemplate x:Key="TipRangeSliderThumbVerticalLeft" TargetType="controls:RangeThumb">
<controls:InternalCanvas Orientation="Vertical">
<Label Name="LabelValue" Opacity="0" Canvas.Right="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Right="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -802,7 +802,7 @@
<ControlTemplate x:Key="TipRangeSliderThumbVerticalRight" TargetType="controls:RangeThumb">
<controls:InternalCanvas Orientation="Vertical">
<Label Name="LabelValue" Opacity="0" Canvas.Left="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}"/>
<Label Name="LabelValue" Opacity="0" Canvas.Left="28" Style="{StaticResource LabelPrimary}" Content="{TemplateBinding Content}" ContentStringFormat="{Binding Path=(controls:TipElement.StringFormat),RelativeSource={RelativeSource TemplatedParent}}"/>
<Border Canvas.Right="0" Effect="{StaticResource EffectShadow1}" Name="BorderDot" BorderThickness="0" BorderBrush="{DynamicResource PrimaryBrush}" Width="18" Height="18" Background="White" CornerRadius="9"/>
</controls:InternalCanvas>
<ControlTemplate.Triggers>
@@ -862,7 +862,7 @@
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="TopLeft"/>
<Condition Property="controls:TipElement.Placement" Value="Top"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbHorizontalTop}"/>
@@ -870,7 +870,7 @@
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="BottomRight"/>
<Condition Property="controls:TipElement.Placement" Value="Bottom"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbHorizontalBottom}"/>
@@ -920,7 +920,7 @@
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="TopLeft"/>
<Condition Property="controls:TipElement.Placement" Value="Left"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbVerticalLeft}"/>
@@ -928,7 +928,7 @@
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:TipElement.Placement" Value="BottomRight"/>
<Condition Property="controls:TipElement.Placement" Value="Right"/>
<Condition Property="controls:TipElement.Visibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter Property="Template" TargetName="ThumbStart" Value="{StaticResource TipRangeSliderThumbVerticalRight}"/>
@@ -0,0 +1,55 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:HandyControl.Controls"
xmlns:langs="clr-namespace:HandyControl.Properties.Langs">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Basic/Sizes.xaml"/>
<ResourceDictionary Source="../Basic/Geometries.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="FlowDocumentScrollViewer">
<Setter Property="controls:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="KeyboardNavigation.TabNavigation" Value="Local"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="FlowDocumentScrollViewer">
<Grid Background="{TemplateBinding Background}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="{TemplateBinding Padding}" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
<ScrollViewer x:Name="PART_ContentHost" CanContentScroll="True" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<Border x:Name="PART_ToolBarHost" Grid.Row="1" Margin="0,4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border x:Name="PART_FindToolBarHost" Grid.Column="0" HorizontalAlignment="Left" Visibility="Collapsed" VerticalAlignment="Center"/>
<Grid Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<RepeatButton Height="18" Width="18" Padding="4,7" controls:BorderElement.CornerRadius="9" controls:IconElement.Geometry="{StaticResource SubGeometry}" Grid.Column="0" Command="NavigationCommands.DecreaseZoom" IsEnabled="{TemplateBinding CanDecreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomOut}"/>
<Slider controls:TipElement.Visibility="Visible" controls:TipElement.Placement="Top" Grid.Column="1" HorizontalAlignment="Stretch" LargeChange="{TemplateBinding ZoomIncrement}" Maximum="{TemplateBinding MaxZoom}" Minimum="{TemplateBinding MinZoom}" SmallChange="{TemplateBinding ZoomIncrement}" TickFrequency="{TemplateBinding ZoomIncrement}" Value="{Binding Zoom, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" Width="180"/>
<RepeatButton Height="18" Width="18" Padding="4" controls:BorderElement.CornerRadius="9" controls:IconElement.Geometry="{StaticResource AddGeometry}" Grid.Column="2" Command="NavigationCommands.IncreaseZoom" IsEnabled="{TemplateBinding CanIncreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomIn}"/>
</Grid>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
@@ -81,6 +81,7 @@
<ResourceDictionary Source="PinBox.xaml"/>
<ResourceDictionary Source="Separator.xaml"/>
<ResourceDictionary Source="StatusBar.xaml"/>
<ResourceDictionary Source="FlowDocumentScrollViewer.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>