54a712336b
- aggiunto EgwDropdownButton - corretto EgwToggleButton che non gestiva trigger su IsChecked - aggiornato progetto Demo con esempi delle modifiche fatte
317 lines
20 KiB
XML
317 lines
20 KiB
XML
<ResourceDictionary
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:EgwWPFBaseLib">
|
|
|
|
<local:CaptionHeightConverter x:Key="CaptionHeightConverter"/>
|
|
<local:SplitCornerConverter x:Key="MainCornerConverter" TargetPart="Main"/>
|
|
<local:SplitCornerConverter x:Key="DropCornerConverter" TargetPart="DropDown"/>
|
|
|
|
<SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
|
|
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
|
|
<SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
|
|
<SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
|
|
<SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
|
|
<SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
|
|
<SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
|
|
<SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
|
|
<SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
|
|
|
|
<Style TargetType="{x:Type local:EgtWindow}" BasedOn="{StaticResource {x:Type Window}}">
|
|
<Setter Property="Background" Value="White"/>
|
|
<Setter Property="WindowChrome.WindowChrome">
|
|
<Setter.Value>
|
|
<WindowChrome CaptionHeight="{Binding TitleBarHeight, RelativeSource={RelativeSource AncestorType={x:Type local:EgtWindow}}}"
|
|
GlassFrameThickness="0"
|
|
CornerRadius="0"
|
|
ResizeBorderThickness="{x:Static SystemParameters.WindowResizeBorderThickness}"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type Window}">
|
|
<Border BorderThickness="0"
|
|
BorderBrush="LightGray"
|
|
Background="{TemplateBinding Background}">
|
|
<ContentPresenter Grid.Row="1"
|
|
Content="{TemplateBinding Content}"/>
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
<Style.Triggers>
|
|
<Trigger Property="WindowState" Value="Maximized">
|
|
<Setter Property="WindowChrome.WindowChrome">
|
|
<Setter.Value>
|
|
<WindowChrome CaptionHeight="{Binding TitleBarHeight, RelativeSource={RelativeSource AncestorType={x:Type local:EgtWindow}}, Converter={StaticResource CaptionHeightConverter}}"
|
|
GlassFrameThickness="0"
|
|
CornerRadius="0"
|
|
ResizeBorderThickness="{x:Static SystemParameters.WindowResizeBorderThickness}"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type Window}">
|
|
<!--bordo necessario per evitare la parte che esce dallo schermo-->
|
|
<Border BorderThickness="7"
|
|
BorderBrush="LightGray"
|
|
Background="{TemplateBinding Background}">
|
|
<ContentPresenter Grid.Row="1"
|
|
Content="{TemplateBinding Content}"/>
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type local:EgwSplitButton}">
|
|
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
|
<Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
|
|
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="Padding" Value="1"/>
|
|
<Setter Property="DropDownButtonPadding" Value="1"/>
|
|
<Setter Property="PopupPlacement" Value="BottomRight"/>
|
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:EgwSplitButton}">
|
|
<Border Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
CornerRadius="{TemplateBinding CornerRadius}"
|
|
Padding="0"
|
|
Margin="0">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition/>
|
|
<ColumnDefinition Width="{Binding SplitBorderThickness, RelativeSource={RelativeSource TemplatedParent}}"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- MAIN BUTTON -->
|
|
<local:EgwButton x:Name="PART_MainButton"
|
|
Grid.Column="0"
|
|
Content="{TemplateBinding Content}"
|
|
Command="{TemplateBinding Command}"
|
|
Background="{TemplateBinding Background}"
|
|
BorderThickness="0"
|
|
Margin="0"
|
|
Padding="{TemplateBinding Padding}"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}">
|
|
<local:EgwButton.CornerRadius>
|
|
<MultiBinding Converter="{StaticResource MainCornerConverter}">
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="CornerRadius"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="BorderThickness"/>
|
|
</MultiBinding>
|
|
</local:EgwButton.CornerRadius>
|
|
</local:EgwButton>
|
|
|
|
<!-- SPLIT BORDER -->
|
|
<Border Grid.Column="1"
|
|
Background="{TemplateBinding SplitBorderBrush}"/>
|
|
|
|
<!-- DROPDOWN BUTTON -->
|
|
<local:EgwToggleButton x:Name="PART_DropDownButton"
|
|
Grid.Column="2"
|
|
Content="{TemplateBinding DropDownButtonContent}"
|
|
Width="{TemplateBinding DropDownButtonWidth}"
|
|
Background="{TemplateBinding DropDownButtonBackground}"
|
|
BorderThickness="0"
|
|
Margin="0"
|
|
Padding="{TemplateBinding DropDownButtonPadding}"
|
|
HorizontalContentAlignment="{TemplateBinding DropDownHorizontalContentAlignment}"
|
|
VerticalContentAlignment="{TemplateBinding DropDownVerticalContentAlignment}">
|
|
<local:EgwToggleButton.CornerRadius>
|
|
<MultiBinding Converter="{StaticResource DropCornerConverter}">
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="CornerRadius"/>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="BorderThickness"/>
|
|
</MultiBinding>
|
|
</local:EgwToggleButton.CornerRadius>
|
|
</local:EgwToggleButton>
|
|
|
|
<!-- Popup generico -->
|
|
<Popup x:Name="PART_Popup"
|
|
PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
|
|
StaysOpen="False"
|
|
AllowsTransparency="True"
|
|
PopupAnimation="Fade"
|
|
IsOpen="{Binding IsChecked, ElementName=PART_DropDownButton}">
|
|
<ContentPresenter Content="{TemplateBinding DropDownContent}"/>
|
|
</Popup>
|
|
</Grid>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="DropDownButtonBackground" Value="{x:Null}">
|
|
<Setter TargetName="PART_DropDownButton" Property="Background">
|
|
<Setter.Value>
|
|
<Binding RelativeSource="{RelativeSource TemplatedParent}"
|
|
Path="Background"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type local:EgwButton}" BasedOn="{StaticResource {x:Type Button}}">
|
|
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
|
<Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
|
|
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
|
<Setter Property="Padding" Value="1"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:EgwButton}">
|
|
<Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true"
|
|
CornerRadius="{TemplateBinding CornerRadius}">
|
|
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsDefaulted" Value="true">
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsMouseOver" Value="true">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsPressed" Value="true">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsEnabled" Value="false">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
|
|
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type local:EgwToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
|
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
|
<Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
|
|
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
|
<Setter Property="Padding" Value="1"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:EgwToggleButton}">
|
|
<Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true" CornerRadius="{TemplateBinding CornerRadius}">
|
|
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="Button.IsDefaulted" Value="true">
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsMouseOver" Value="true">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsPressed" Value="true">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsChecked" Value="True">
|
|
<Setter TargetName="border" Property="Background" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</Trigger>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsChecked" Value="True"/>
|
|
<Condition Property="IsMouseOver" Value="True"/>
|
|
</MultiTrigger.Conditions>
|
|
<Setter TargetName="border" Property="Background" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</MultiTrigger>
|
|
<Trigger Property="IsEnabled" Value="false">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
|
|
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type local:EgwDropdownButton}">
|
|
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
|
<Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
|
|
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
|
|
<Setter Property="Content" Value="▼"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="Padding" Value="1"/>
|
|
<Setter Property="PopupPlacement" Value="BottomRight"/>
|
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:EgwDropdownButton}">
|
|
<Grid>
|
|
<Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true" CornerRadius="{TemplateBinding CornerRadius}">
|
|
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
|
</Border>
|
|
<!-- Popup generico -->
|
|
<Popup x:Name="PART_Popup"
|
|
PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
|
|
StaysOpen="False"
|
|
AllowsTransparency="True"
|
|
PopupAnimation="Fade"
|
|
IsOpen="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}">
|
|
<ContentPresenter Content="{TemplateBinding DropDownContent}"/>
|
|
</Popup>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="Button.IsDefaulted" Value="true">
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsMouseOver" Value="true">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsPressed" Value="true">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsChecked" Value="True">
|
|
<Setter TargetName="border" Property="Background" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</Trigger>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsChecked" Value="True"/>
|
|
<Condition Property="IsMouseOver" Value="True"/>
|
|
</MultiTrigger.Conditions>
|
|
<Setter TargetName="border" Property="Background" Value="{StaticResource Button.Pressed.Background}"/>
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Pressed.Border}"/>
|
|
</MultiTrigger>
|
|
<Trigger Property="IsEnabled" Value="false">
|
|
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
|
|
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
|
|
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary>
|