You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
10 KiB
200 lines
10 KiB
<!--***********************************************************************************
|
|
|
|
Toolkit for WPF
|
|
|
|
Copyright (C) 2007-2025 Xceed Software Inc.
|
|
|
|
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
|
|
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
|
|
https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
|
|
|
|
For more features, controls, and fast professional support,
|
|
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
|
|
|
|
Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids
|
|
|
|
**********************************************************************************-->
|
|
|
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes"
|
|
xmlns:local="clr-namespace:Xceed.Wpf.Toolkit"
|
|
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters"
|
|
xmlns:themes="clr-namespace:Xceed.Wpf.Toolkit.Themes">
|
|
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="..\..\Themes\Generic\Glyphs.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
|
|
<conv:InverseBoolConverter x:Key="InverseBoolConverter" />
|
|
|
|
<LinearGradientBrush x:Key="ColorPickerDarkBorderBrush"
|
|
EndPoint="0.5,1"
|
|
StartPoint="0.5,0">
|
|
<GradientStop Color="#FFA3AEB9"
|
|
Offset="0" />
|
|
<GradientStop Color="#FF8399A9"
|
|
Offset="0.375" />
|
|
<GradientStop Color="#FF718597"
|
|
Offset="0.375" />
|
|
<GradientStop Color="#FF617584"
|
|
Offset="1" />
|
|
</LinearGradientBrush>
|
|
|
|
<LinearGradientBrush x:Key="PopupBackgroundBrush"
|
|
StartPoint="0,0"
|
|
EndPoint="0,1">
|
|
<LinearGradientBrush.GradientStops>
|
|
<GradientStopCollection>
|
|
<GradientStop Offset="0"
|
|
Color="#FFffffff" />
|
|
<GradientStop Offset="1"
|
|
Color="#FFE8EBED" />
|
|
</GradientStopCollection>
|
|
</LinearGradientBrush.GradientStops>
|
|
</LinearGradientBrush>
|
|
|
|
<!-- =============================================================================== -->
|
|
<!-- SplitButton -->
|
|
<!-- =============================================================================== -->
|
|
<conv:ThicknessSideRemovalConverter x:Key="ThicknessSideRemovalConverter" />
|
|
|
|
<Style TargetType="{x:Type local:SplitButton}">
|
|
<Setter Property="BorderThickness"
|
|
Value="1" />
|
|
<Setter Property="IsTabStop"
|
|
Value="False" />
|
|
<Setter Property="HorizontalContentAlignment"
|
|
Value="Center" />
|
|
<Setter Property="VerticalContentAlignment"
|
|
Value="Center" />
|
|
<Setter Property="Background"
|
|
Value="{DynamicResource {x:Static themes:ResourceKeys.ButtonNormalBackgroundKey}}" />
|
|
<Setter Property="BorderBrush"
|
|
Value="{DynamicResource {x:Static themes:ResourceKeys.ButtonNormalOuterBorderKey}}" />
|
|
<Setter Property="DropDownContentBackground"
|
|
Value="{StaticResource PopupBackgroundBrush}" />
|
|
<Setter Property="Padding"
|
|
Value="3" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:SplitButton}">
|
|
<Grid x:Name="MainGrid"
|
|
SnapsToDevicePixels="True">
|
|
<chrome:ButtonChrome x:Name="ControlChrome"
|
|
Background="{TemplateBinding Background}"
|
|
RenderEnabled="{TemplateBinding IsEnabled}"
|
|
CornerRadius="2.75"
|
|
BorderThickness="0">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Button x:Name="PART_ActionButton"
|
|
Margin="0"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
Padding="{TemplateBinding Padding}"
|
|
Style="{x:Null}">
|
|
<Button.Template>
|
|
<ControlTemplate TargetType="Button">
|
|
<ContentPresenter />
|
|
</ControlTemplate>
|
|
</Button.Template>
|
|
<Grid>
|
|
<chrome:ButtonChrome x:Name="ActionButtonChrome"
|
|
Background="{TemplateBinding Background}"
|
|
Foreground="{TemplateBinding Foreground}"
|
|
BorderThickness="{Binding BorderThickness, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSideRemovalConverter}, ConverterParameter=2}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
CornerRadius="2.75, 0, 0, 2.75"
|
|
RenderEnabled="{TemplateBinding IsEnabled}"
|
|
RenderMouseOver="{Binding IsMouseOver, ElementName=PART_ActionButton}"
|
|
RenderPressed="{Binding IsPressed, ElementName=PART_ActionButton}">
|
|
<ContentPresenter Name="ActionButtonContent"
|
|
Margin="{TemplateBinding Padding}"
|
|
Content="{TemplateBinding Content}"
|
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
|
ContentStringFormat="{TemplateBinding ContentStringFormat}"
|
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
RecognizesAccessKey="true" />
|
|
</chrome:ButtonChrome>
|
|
</Grid>
|
|
</Button>
|
|
<ToggleButton x:Name="PART_ToggleButton"
|
|
Grid.Column="1"
|
|
IsChecked="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
|
|
IsHitTestVisible="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}"
|
|
ToolTip="{Binding DropDownTooltip, RelativeSource={RelativeSource TemplatedParent}}">
|
|
<ToggleButton.Template>
|
|
<ControlTemplate TargetType="ToggleButton">
|
|
<ContentPresenter />
|
|
</ControlTemplate>
|
|
</ToggleButton.Template>
|
|
<Grid>
|
|
<chrome:ButtonChrome x:Name="ToggleButtonChrome"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Padding="1,0,1,0"
|
|
CornerRadius="0, 2.75, 2.75, 0"
|
|
RenderChecked="{TemplateBinding IsOpen}"
|
|
RenderEnabled="{TemplateBinding IsEnabled}"
|
|
RenderMouseOver="{Binding IsMouseOver, ElementName=PART_ToggleButton}"
|
|
RenderPressed="{Binding IsPressed, ElementName=PART_ToggleButton}">
|
|
<Grid x:Name="arrowGlyph"
|
|
IsHitTestVisible="False"
|
|
Margin="4,3,4,3">
|
|
<Path x:Name="Arrow"
|
|
Width="9"
|
|
Height="5"
|
|
Data="{StaticResource DownArrowGeometry}"
|
|
Fill="#FF000000"
|
|
Margin="0,1,0,0" />
|
|
</Grid>
|
|
</chrome:ButtonChrome>
|
|
</Grid>
|
|
</ToggleButton>
|
|
</Grid>
|
|
</chrome:ButtonChrome>
|
|
|
|
<Popup x:Name="PART_Popup"
|
|
HorizontalOffset="1"
|
|
VerticalOffset="1"
|
|
AllowsTransparency="True"
|
|
StaysOpen="False"
|
|
Placement="{TemplateBinding DropDownPosition}"
|
|
Focusable="False"
|
|
IsOpen="{Binding IsChecked, ElementName=PART_ToggleButton}">
|
|
<!-- TODO: Create Popup Styles that can be reused on all popups in the toolkit-->
|
|
<Border BorderThickness="1"
|
|
Background="{TemplateBinding DropDownContentBackground}"
|
|
BorderBrush="{StaticResource ColorPickerDarkBorderBrush}"
|
|
MaxHeight="{TemplateBinding MaxDropDownHeight}">
|
|
<ScrollViewer x:Name="DropDownScrollViewer"
|
|
VerticalScrollBarVisibility="Auto">
|
|
<ContentPresenter x:Name="PART_ContentPresenter"
|
|
Content="{TemplateBinding DropDownContent}" />
|
|
</ScrollViewer>
|
|
</Border>
|
|
</Popup>
|
|
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsEnabled"
|
|
Value="False">
|
|
<Setter Property="Fill"
|
|
TargetName="Arrow"
|
|
Value="#AFAFAF" />
|
|
<Setter Property="Foreground"
|
|
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary>
|
|
|