提交 c1496c77 编写于 作者: 小时後可胖了's avatar 小时後可胖了

新增RadioButton默认样式、组合样式

新增Checkbox默认样式
上级 a4b891e0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace SmartUI.Demo.Common
{
public class RelayCommand : ICommand
{
public event EventHandler CanExecuteChanged;
private readonly Action<object> _execute;
public RelayCommand(Action<object> execute)
{
_execute = execute;
}
public bool CanExecute(object parameter) => _execute != null;
public void Execute(object parameter)
{
_execute(parameter);
}
}
}
......@@ -56,24 +56,70 @@
</TabItem>
<TabItem Header="PackIcon">
<ScrollViewer VerticalScrollBarVisibility="Visible" CanContentScroll="True">
<ItemsControl ItemsSource="{Binding Icons}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel Orientation="Vertical" Width="50" Height="70" Margin="5" ToolTip="{Binding}">
<smart:PackIcon Kind="{Binding}" VerticalAlignment="Center" Foreground="Gray" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding}" HorizontalAlignment="Center" TextTrimming="WordEllipsis" Foreground="Gray"/>
</StackPanel>
</HierarchicalDataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<DockPanel LastChildFill="True">
<Button Height='40' Content="加载更多" DockPanel.Dock="Bottom" Style="{StaticResource PrimaryButtonStyle1}" Command="{Binding LoadMoreIconCommand}"/>
<ItemsControl ItemsSource="{Binding Icons}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel Orientation="Vertical" Width="50" Height="70" Margin="5" ToolTip="{Binding}">
<smart:PackIcon Kind="{Binding}" VerticalAlignment="Center" Foreground="Gray" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding}" HorizontalAlignment="Center" TextTrimming="WordEllipsis" Foreground="Gray"/>
</StackPanel>
</HierarchicalDataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DockPanel>
</ScrollViewer>
</TabItem>
<TabItem Header="Form">
<StackPanel Orientation="Vertical">
<StackPanel.Resources>
<Style TargetType="WrapPanel">
<Setter Property="Height" Value="40"/>
<Setter Property="Margin" Value="8"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style TargetType="Label" BasedOn="{StaticResource DefaultLableStyle}">
<Setter Property="MinWidth" Value="100"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</StackPanel.Resources>
<WrapPanel Orientation="Horizontal">
<Label Content="Radio"/>
<RadioButton Content="选项一" GroupName="a" IsChecked="True" />
<RadioButton Content="选项二" GroupName="a" />
<RadioButton Content="禁用选中" IsChecked="True" IsEnabled="False" GroupName="b"/>
<RadioButton Content="禁用" IsEnabled="False" GroupName="b"/>
</WrapPanel>
<WrapPanel Orientation="Horizontal">
<Label Content="Radio组"/>
<RadioButton Content="选项一" GroupName="radioGroup" IsChecked="True" Style="{StaticResource RadioButtonGroupStyle}"/>
<RadioButton Content="选项二" GroupName="radioGroup" Style="{StaticResource RadioButtonGroupStyle}"/>
<RadioButton Content="选项三" GroupName="radioGroup" Style="{StaticResource RadioButtonGroupStyle}"/>
<RadioButton Content="禁用" IsEnabled="False" GroupName="radioGroup" Style="{StaticResource RadioButtonGroupStyle}"/>
</WrapPanel>
<WrapPanel Orientation="Horizontal">
<Label Content="CheckBox"/>
<CheckBox Content="选项一" IsChecked="True"/>
<CheckBox Content="选项二" />
<CheckBox Content="选项三" />
<CheckBox Content="禁用" IsEnabled="False"/>
</WrapPanel>
<WrapPanel Orientation="Horizontal">
<Label Content="CheckBox"/>
<smart:CheckBoxGroup CanAllChecked="True" CornerRadius="5">
<CheckBox Content="选项一" IsChecked="True"/>
<CheckBox Content="选项二" />
<CheckBox Content="选项三" />
<CheckBox Content="禁用" IsEnabled="False"/>
</smart:CheckBoxGroup>
</WrapPanel>
</StackPanel>
</TabItem>
</TabControl>
</smart:SmartWindow>
using SmartUI.Common.Enum;
using SmartUI.Demo.Common;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
......@@ -6,6 +7,7 @@ using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace SmartUI.Demo
{
......@@ -23,10 +25,31 @@ namespace SmartUI.Demo
}
}
private ICommand _loadMoreIconCommand;
public ICommand LoadMoreIconCommand
{
get => _loadMoreIconCommand;
set
{
_loadMoreIconCommand = value;
RaisePropertyChanged(nameof(LoadMoreIconCommand));
}
}
private int _iconsPageIndex = 1;
private int _pageSize = 100;
private PackIconKind[] _iconsArray;
public MainWindowModel()
{
PackIconKind[] array =(PackIconKind[]) Enum.GetValues(typeof(PackIconKind));
Icons = new ObservableCollection<PackIconKind>(array);
_iconsArray = (PackIconKind[]) Enum.GetValues(typeof(PackIconKind));
Icons = new ObservableCollection<PackIconKind>(_iconsArray.Take(_iconsPageIndex* _pageSize));
LoadMoreIconCommand = new RelayCommand(new Action<object>(LoadMoreIcon));
}
private void LoadMoreIcon(object obj)
{
_iconsArray.Skip((_iconsPageIndex - 1) * _pageSize).Take(_pageSize).ToList().ForEach(p => {Icons.Add(p); });
}
......
......@@ -64,6 +64,7 @@
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Common\RelayCommand.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace SmartUI.Assist
{
public class RadioButtonAssist
{
public static bool GetIsDynamicCornerRadius(RadioButton radio) => (bool)radio.GetValue(IsDynamicCornerRadiusProperty);
public static void SetIsDynamicCornerRadius(RadioButton radio, bool value) => radio.SetValue(IsDynamicCornerRadiusProperty, value);
public static readonly DependencyProperty IsDynamicCornerRadiusProperty
= DependencyProperty.RegisterAttached("IsDynamicCornerRadius", typeof(bool), typeof(RadioButtonAssist), new PropertyMetadata(false, IsDynamicCornerRadiusChanged));
private static void IsDynamicCornerRadiusChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (d is RadioButton radio && e.NewValue is bool flag && flag)
{
radio.Loaded -= Radio_Loaded;
radio.Loaded += Radio_Loaded;
}
}
private static void Radio_Loaded(object sender, RoutedEventArgs e)
{
if (!(sender is RadioButton radio))
return;
string groupName = radio.GroupName;
if (!(radio.Parent is Panel panel))
return;
int index = 0;
RadioButton preRadio = default;
foreach (var item in panel.Children)
{
if (item is RadioButton itemRadio && itemRadio.GroupName.Equals(groupName))
{
preRadio = itemRadio;
if (index == 0)
{
Border border = itemRadio.Template.FindName("border", itemRadio) as Border;
if (border != null)
{
border.CornerRadius = new CornerRadius(4, 0, 0, 4);
border.BorderThickness = new Thickness(1, 1, 0, 1);
}
}
index++;
}
}
if (preRadio != default)
{
Border border = preRadio.Template.FindName("border", preRadio) as Border;
if (border != null)
{
border.CornerRadius = new CornerRadius(0, 4, 4, 0);
border.BorderThickness = new Thickness(0, 1, 1, 1);
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace SmartUI.Controls
{
public class CheckBoxGroup : WrapPanel
{
public CheckBoxGroup()
{
Orientation = Orientation.Horizontal;
}
public bool CanAllChecked
{
get { return (bool)GetValue(CanAllCheckedProperty); }
set { SetValue(CanAllCheckedProperty, value); }
}
public static readonly DependencyProperty CanAllCheckedProperty =
DependencyProperty.Register(nameof(CanAllChecked), typeof(bool), typeof(CheckBoxGroup), new PropertyMetadata(false));
public bool AllChecked
{
get { return (bool)GetValue(AllCheckedProperty); }
set { SetValue(AllCheckedProperty, value); }
}
public static readonly DependencyProperty AllCheckedProperty =
DependencyProperty.Register(nameof(AllChecked), typeof(bool), typeof(CheckBoxGroup), new PropertyMetadata(false));
public CornerRadius CornerRadius
{
get { return (CornerRadius)GetValue(CornerRadiusProperty); }
set { SetValue(CornerRadiusProperty, value); }
}
public static readonly DependencyProperty CornerRadiusProperty =
DependencyProperty.Register(nameof(CornerRadius), typeof(CornerRadius), typeof(CheckBoxGroup), new PropertyMetadata(default));
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
if (Children.Count == 0 || CornerRadius == default)
return;
int index = 0;
CheckBox preCheckBox = default;
foreach (var item in Children)
{
if (item is CheckBox check)
{
if (index == 0)
{
preCheckBox = check;
Border border = check.Template.FindName("border", check) as Border;
if (border != null)
{
border.CornerRadius = new CornerRadius(CornerRadius.TopLeft, 0, 0, CornerRadius.BottomLeft);
border.BorderThickness = new Thickness(1, 1, 0, 1);
}
}
}
}
if (preCheckBox != default)
{
Border border = preCheckBox.Template.FindName("border", preCheckBox) as Border;
if (border != null)
{
border.CornerRadius = new CornerRadius(0, CornerRadius.TopRight, CornerRadius.BottomRight, 0);
border.BorderThickness = new Thickness(0, 1, 1, 1);
}
}
}
}
}
......@@ -55,9 +55,11 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Assist\ButtonAssist.cs" />
<Compile Include="Assist\RadioButtonAssist.cs" />
<Compile Include="Assist\DataGridAssist.cs" />
<Compile Include="Controls\ChildWindow.cs" />
<Compile Include="Controls\ComboBoxControl.cs" />
<Compile Include="Controls\CheckBoxGroup.cs" />
<Compile Include="Controls\DateTimePicker.cs" />
<Compile Include="Controls\DrTextBox.cs" />
<Compile Include="Controls\NoticeControl.cs" />
......@@ -82,6 +84,14 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\CheckBoxStyle.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\RadioButtonStyle.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\WindowStyle.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
......@@ -135,10 +145,5 @@
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Content Include="Images\u196.png" />
<Content Include="Images\u301.png" />
<Content Include="Images\u304.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
......@@ -2,14 +2,13 @@
<package >
<metadata>
<id>$id$</id>
<version>1.0.0.1</version>
<version>1.0.0.2</version>
<title>SmartUI</title>
<authors>柯勇</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<projectUrl>https://github.com/qq1678167865/smartUI</projectUrl>
<iconUrl>http://icon_url_here_or_delete_this_line/</iconUrl>
<description>WPF UI组件库</description>
<projectUrl>https://github.com/keyong1993/smartUI</projectUrl>
<description>SmartUI是是用于构建Wpf程序的一套基础UI框架,内置了丰富的控件样式以及自定义组件,整体风格类似于前端的Element</description>
<releaseNotes>SmartUI是是用于构建Wpf程序的一套基础UI框架,内置了丰富的控件样式以及自定义组件,整体风格类似于前端的Element</releaseNotes>
<copyright>$copyright$</copyright>
<tags></tags>
......
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:smart="clr-namespace:SmartUI.Controls">
<Style x:Key="DefaultCheckBoxStyle" TargetType="{x:Type CheckBox}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextColor}"/>
<Setter Property="FontSize" Value="16"></Setter>
<Setter Property="MinHeight" Value="30"/>
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBaseColor}"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Margin" Value="5 0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Grid x:Name="templateRoot" Cursor="{TemplateBinding Cursor}" Background="Transparent" SnapsToDevicePixels="True" Margin="0 0 5 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<smart:PackIcon x:Name="icon" Kind="CheckBoxOutlineBlank" Foreground="{TemplateBinding BorderBrush}" Height="16" Width="16" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1,1,5,1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
<ContentPresenter x:Name="contentPresenter" Grid.Column="1" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="icon" Property="Kind" Value="CheckBox"/>
<Setter Property="BorderBrush" Value="{DynamicResource BrandColor}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource SecondaryTextColor}"/>
<Setter Property="Cursor" Value="No"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="CheckBox" BasedOn="{StaticResource DefaultCheckBoxStyle}"/>
</ResourceDictionary>
\ No newline at end of file
......@@ -14,5 +14,7 @@
<ResourceDictionary Source="pack://application:,,,/SmartUI;component/Themes/LableStyle.xaml" />
<ResourceDictionary Source="pack://application:,,,/SmartUI;component/Themes/TabControlStyle.xaml" />
<ResourceDictionary Source="pack://application:,,,/SmartUI;component/Themes/WindowStyle.xaml" />
<ResourceDictionary Source="pack://application:,,,/SmartUI;component/Themes/RadioButtonStyle.xaml" />
<ResourceDictionary Source="pack://application:,,,/SmartUI;component/Themes/CheckBoxStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
\ No newline at end of file
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Label}">
<Style x:Key="DefaultLableStyle" TargetType="{x:Type Label}">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Padding" Value="8 0"/>
<Setter Property="FontSize" Value="14"/>
</Style>
<Style TargetType="Label" BasedOn="{StaticResource DefaultLableStyle}"/>
</ResourceDictionary>
\ No newline at end of file
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:assist="clr-namespace:SmartUI.Assist">
<Style TargetType="{x:Type RadioButton}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextColor}"/>
<Setter Property="FontSize" Value="16"></Setter>
<Setter Property="MinHeight" Value="30"/>
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Margin" Value="5 0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True" Margin="0 0 5 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border x:Name="radioButtonBorder" BorderBrush="{TemplateBinding BorderBrush}" Height="15" Width="15" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="7" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1,1,5,1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
<ContentPresenter x:Name="contentPresenter" Grid.Column="1" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" Value="#FF1890FF"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" TargetName="templateRoot" Value="0.4"/>
<Setter Property="Background" TargetName="templateRoot" Value="#FFFFFF"/>
<Setter Property="Cursor" TargetName="templateRoot" Value="No"/>
<Setter Property="IsHitTestVisible" Value="False"/>
<!--<Setter Property="Fill" TargetName="optionMark" Value="Gray"/>-->
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" Value="#FFD9ECFF"/>
<Setter Property="BorderBrush" Value="{DynamicResource BrandColor}"/>
<!--<Setter Property="Fill" TargetName="optionMark" Value="#FF212121"/>-->
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="BorderThickness" Value="3"/>
<Setter Property="BorderBrush" Value="{DynamicResource BrandColor}"/>
<!--<Setter Property="Opacity" TargetName="optionMark" Value="1"/>-->
</Trigger>
<Trigger Property="IsChecked" Value="{x:Null}">
<!--<Setter Property="Opacity" TargetName="optionMark" Value="0.56"/>-->
</Trigger>
<EventTrigger RoutedEvent="Checked">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="BorderThickness" Duration="0:0:0.15" AutoReverse="False" FillBehavior="Stop" From="7" To="4"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Unchecked">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="BorderThickness" Duration="0:0:0.15" AutoReverse="False" FillBehavior="Stop" From="4" To="7"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="RadioButtonGroupStyle" TargetType="{x:Type RadioButton}">
<Setter Property="MinWidth" Value="60"/>
<Setter Property="Height" Value="40"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Padding" Value="10,5"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderLightColor}"/>
<Setter Property="assist:RadioButtonAssist.IsDynamicCornerRadius" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0 1 1 1" CornerRadius="0" Background="{TemplateBinding Background}">
<Label HorizontalContentAlignment="Center" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="{TemplateBinding Padding}" Foreground="{TemplateBinding Foreground}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="{DynamicResource BrandColor}"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="{DynamicResource BrandColor}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderBrush" Value="{DynamicResource BrandColor}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Opacity" Value="0.7"/>
<Setter TargetName="border" Property="Cursor" Value="No"/>
<Setter Property="Foreground" Value="{DynamicResource RegularTextColor}"/>
</Trigger>
<EventTrigger RoutedEvent="Checked">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" Duration="00:00:.3" To="Red"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Unchecked">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" Duration="00:00:.3" To="White"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册