多选按钮怎么写_wpfgridview增加按钮「建议收藏」

多选按钮怎么写_wpfgridview增加按钮「建议收藏」多选按钮和单选按钮wpf本教程旨在启发XAML的功能,以为Windows(WPF),Web(Silverlight)和浏览器(XBAP)构建丰富的应用程序

多选按钮怎么写_wpfgridview增加按钮「建议收藏」"

多选按钮和单选按钮 wpf

本教程旨在启发XAML的功能,以为Windows(WPF),Web(Silverlight)和浏览器(XBAP)构建丰富的应用程序。 我将向您介绍有关使用纯XAML构建有吸引力的渐变发光按钮的信息。 使用XAML,我们不必为外观精美的控件构建用户或自定义控件。 相反,我们使用样式,与应用于Web控件CSS相同。

为此,我们将创建一个资源字典。 资源字典是一个包含控件样式的文件(例如.css文件)。 为了可重用,我们定义了资源字典。 虽然,您不必创建应用样式的资源字典。 您可以在各自的xaml源代码中以App.xaml或Window或Page级别样式编写应用程序级别样式。

您可以通过从“项目”菜单添加新的Reosurce词典来添加ResourceDictionary文件。

默认情况下,您的资源字典文件将包含以下标记。

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

现在,在介绍样式之前,我们将把此资源文件引入App.xaml

     <Application.Resources>         <ResourceDictionary>             <ResourceDictionary.MergedDictionaries>                 <ResourceDictionary Source="Resources/Generic.xaml"/>             </ResourceDictionary.MergedDictionaries>         </ResourceDictionary>     </Application.Resources> 

如您在上述标记中的<Application.Resources>下所看到的,我们需要合并将在应用程序中使用的资源文件。 我将所有资源文件都保存在Resources文件夹下,您可以指定自己的文件。

完成此操作后,让我们回到定义样式。 这是我们要为按钮定义样式的地方。 现在,为按钮定义衰落的发光样式需要大量的XAML标记。

因此,我将逐步解释每个阶段。

阶段1:追求风格

 <Style x:Key="GlowButtonStyle" TargetType="{x:Type Button}">  

首先,我们将定义一个这样的样式,在其中指定样式GlowButtonStyle的可访问名称以及我们要定位的控件的类型,即Button。

然后,我指定按钮的文本颜色。

 <Setter Property="Button.Foreground" Value="Black"/> 

要更改按钮的整体外观并创建自己的外观,我们需要覆盖默认的temaplte并定义一个新模板。 这就是大多数代码的全部含义。

我们将在控件的template属性下设置新模板

         <Setter Property="Template">             <Setter.Value>                 <ControlTemplate TargetType="{x:Type Button}" x:Name="ButtonUpControlTemplate"> 

在上面的标记中,我们为控件设置了一个新模板,所有代码都在<ControlTemplate>标记下。

现在,没有任何内容作为模板,该按钮将仅在窗口中不可见。

阶段2:为“空”按钮提供背景

为此,我们在按钮周围创建一个浅边框以使其出现。

          <Border x:Name="ButtonBorder"                    BorderThickness="1"                   BorderBrush="Gray"> 

现在,对于渐变部分,我们必须在边框背景中绘制按钮的背景渐变。

在给定边框后,我们需要为按钮提供内容设置,如要保留在按钮内的文本中所示。

    <ContentPresenter x:Name="ButtonContentPresenter"                                 VerticalAlignment="Center"                                   HorizontalAlignment="Center"/> 

ContentPresenter管理内容对齐,并通知空白按钮Canvas它必须在其中容纳一些内容。 如果不指定ContentPresenter,您将无法看到按钮内嵌的蚂蚁内容。

现在有关填充控件背景。

                         <Border.Background>                             <LinearGradientBrush x:Name="ButtonUp"    StartPoint="0,0" EndPoint="0,1">                                 <GradientStop Color="WhiteSmoke" Offset="0.1"/>                                 <GradientStop Color="LightGray" Offset="0.2"/>                                 <GradientStop Color="White" Offset="0.9"/>                             </LinearGradientBrush>                         </Border.Background> 

您可以在Border.Background中将渐变填充设置指定为按钮背景的一部分。 在这里,我定义了一个LinearGradientBrush,它具有一些看起来更好的渐变停止点,还指定了StartPoint作为渐变的原点和EndPoint作为渐变的末尾。

然后最后用</ Border>标签关闭Border

 </Border> 

阶段3:安排动画Glowy效果

在此之下,我将向您解释动画部分,该部分使鼠标悬停时按钮发光,并在鼠标离开时恢复正常。

当鼠标悬停在按钮上或单击鼠标时,动画效果最适合该按钮。

现在,要处理鼠标悬停时的动画,我们需要在<ControlTemplate.Triggers>标记下为其编写标记。

     <MultiTrigger>       <MultiTrigger.Conditions>        <Condition Property="Button.IsMouseOver" Value="True"/>         </MultiTrigger.Conditions> 

为了指定在哪个触发器上执行指定的动作,我们需要在<MultiTrigger.Conditions>标记下指定触发器条件。

在这里,我们检查Button的属性。 如果将鼠标悬停在鼠标上,并且属性值满足条件。 然后,我们将动画代码编写如下:

          <MultiTrigger.EnterActions>          <BeginStoryboard Storyboard="{StaticResource ButtonAnimationOver}"/>             </MultiTrigger.EnterActions> 

在<MultiTrigger.EnterActions>中,我们启动彩色动画的情节提要,该情节提要引用同一文件中的动画资源。

     <Storyboard x:Key="ButtonAnimationOver">             <ParallelTimeline>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" From ="WhiteSmoke" To="PaleGoldenrod" Duration="0:0:0.50"/>             <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" From ="LightGray" To="PaleGoldenrod" Duration="0:0:0.50"/>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" From ="White" To="PaleGoldenrod" Duration="0:0:0.50"/>             </ParallelTimeline>     </Storyboard> 

此StoryBoard播放ColorAnimation,该动画在Duration属性中指定的时间内将按钮的当前渐变颜色更改为PaleGoldenRed Color。

当鼠标离开控件焦点时,我们为效果编写ExitActions,如下所示

         <MultiTrigger.ExitActions>          <BeginStoryboard Storyboard="{StaticResource ButtonAnimationOut}"/>             </MultiTrigger.ExitActions> 

和退出动画

     <Storyboard x:Key="ButtonAnimationOut">             <ParallelTimeline>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" To ="WhiteSmoke" From="PaleGoldenrod" Duration="0:0:0.50"/>             <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" To="LightGray" From="PaleGoldenrod" Duration="0:0:0.50"/>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" To="White" From="PaleGoldenrod" Duration="0:0:0.50"/>             </ParallelTimeline>     </Storyboard> 

现在已经可以将样式应用于按钮了,现在转到要样式化的按钮并应用样式。

    <Button Content="Button4" Height="42" x:Name="button1" Width="85" Style="{StaticResource GlowButtonStyle}"/> 

我们在样式属性中为按钮指定样式名称,这就是将按钮样式设置为Fading Glowy Button所需的全部。

这是完整的资源字典代码。

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">     <!-- Style for application Background-->     <Style x:Key="ApplicationBackground" TargetType="{x:Type Window}">         <Setter Property="Control.Background" Value="WhiteSmoke"/>     </Style>        <Storyboard x:Key="ButtonAnimationOver">             <ParallelTimeline>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" From ="WhiteSmoke" To="PaleGoldenrod" Duration="0:0:0.50"/>             <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" From ="LightGray" To="PaleGoldenrod" Duration="0:0:0.50"/>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" From ="White" To="PaleGoldenrod" Duration="0:0:0.50"/>             </ParallelTimeline>     </Storyboard>     <Storyboard x:Key="ButtonAnimationOut">             <ParallelTimeline>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" To ="WhiteSmoke" From="PaleGoldenrod" Duration="0:0:0.50"/>             <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" To="LightGray" From="PaleGoldenrod" Duration="0:0:0.50"/>                 <ColorAnimation Storyboard.TargetName="ButtonUp" Storyboard.TargetProperty="(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" To="White" From="PaleGoldenrod" Duration="0:0:0.50"/>             </ParallelTimeline>     </Storyboard>      <!-- Common Button Style-->     <Style x:Key="GlowButtonStyle" TargetType="{x:Type Button}">          <Setter Property="Button.Foreground" Value="Black"/>         <Setter Property="Template">             <Setter.Value>                 <ControlTemplate TargetType="{x:Type Button}" x:Name="ButtonUpControlTemplate">                     <Border x:Name="ButtonBorder"                    BorderThickness="1"                   BorderBrush="Gray">                         <ContentPresenter x:Name="ButtonContentPresenter"                                 VerticalAlignment="Center"                                   HorizontalAlignment="Center"/>                         <Border.Background>                             <LinearGradientBrush x:Name="ButtonUp"    StartPoint="0,0" EndPoint="0,1">                                 <GradientStop Color="WhiteSmoke" Offset="0.1"/>                                 <GradientStop Color="LightGray" Offset="0.2"/>                                 <GradientStop Color="White" Offset="0.9"/>                             </LinearGradientBrush>                         </Border.Background>                     </Border>                     <ControlTemplate.Triggers>                         <MultiTrigger>                             <MultiTrigger.Conditions>                                 <Condition Property="Button.IsMouseOver" Value="True"/>                             </MultiTrigger.Conditions>                             <MultiTrigger.EnterActions>                                 <BeginStoryboard Storyboard="{StaticResource ButtonAnimationOver}"/>                             </MultiTrigger.EnterActions>                             <MultiTrigger.ExitActions>                                 <BeginStoryboard Storyboard="{StaticResource ButtonAnimationOut}"/>                             </MultiTrigger.ExitActions>                         </MultiTrigger>                     </ControlTemplate.Triggers>                 </ControlTemplate>             </Setter.Value>         </Setter>     </Style> </ResourceDictionary> 

翻译自: https://bytes.com/topic/xaml/insights/889097-fading-glowy-button-wpf-silverlight

多选按钮和单选按钮 wpf

今天的文章多选按钮怎么写_wpfgridview增加按钮「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88679.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注