WPF控件模板与样式最方便的修改方法

本文介绍了如何方便地修改WPF中ToolBar的控件模板和样式,通过提取模板到资源字典进行管理,展示了修改ToolBar背景色的具体步骤,并探讨了如何调整ToggleButtom的Background。
摘要由CSDN通过智能技术生成

话就不多说,直接给给个例子

比如要修改工具栏ToolBar的Background,

选择ToolBar在属性栏右键点Template将值提取到资源(如下图)

提取到的资源保存,最好保存在资源字典里方便管理.
如提取ToolBar的模板如下

<ControlTemplate x:Key="ToolBarTemplate1" TargetType="ToolBar">
      <Grid Margin="3,1,1,1" Name="Grid" SnapsToDevicePixels="True">
        <Grid HorizontalAlignment="Right" Name="OverflowGrid">
          <ToggleButton ClickMode="Press"
                        FocusVisualStyle="{x:Null}"
                        IsChecked="{Binding Path=IsOverflowOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
                        IsEnabled="{TemplateBinding ToolBar.HasOverflowItems}"
                        Name="OverflowButton">
            <ToggleButton.Style>
             
              <Style TargetType="ToggleButton">
                <Style.Triggers>
                  <DataTrigger Binding="{Binding}" Value="true">
                    <Setter Property="Control.Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
                  </DataTrigger>
                </Style.Triggers>
    <!-- 修改的 -->
                <Setter Property="Control.Background" Value="#FFD5DCE8">
    <!-- 原来的 -->
                  <!--<Setter Property="Control.Background">
      <Setter.Value>
                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                      <GradientStop Color="#FFEFEEEB" Offset="0" />
                      <GradientStop Color="#FFE1E1DA" Offset="0.5" />
                      <GradientStop Color="#FF98987E" Offset="1" />
                    </LinearGradientBrush>
                  </Setter.Value>-->
                </Setter>
                <Setter Property="FrameworkElement.MinHeight" Value="0" />
                <Setter Property="FrameworkElement.MinWidth" Value="0" />
                <Setter Property="Control.Template">
                  <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                      <Border Background="{TemplateBinding Control.Background}"
                              CornerRadius="0,3,3,0" Name="Bd" SnapsToDevicePixels="True">
                        <Canvas Height="7" HorizontalAlignment="Right"
                                Margin="7,2,2,2" SnapsToDevicePixels="True" VerticalAlignment="Bottom" Width="6">
                          <Path Data="M1,1.5L6,1.5" Stroke="White" />
                          <Path Data="M0,0.5L5,0.5" Stroke="{TemplateBinding Control.Foreground}" />
                          <Path Data="M0.5,4L6.5,4 3.5,7z" Fill="White" />
                          <Path Data="M-0.5,3L5.5,3 2.5,6z" Fill="{TemplateBinding Control.Foreground}" />
                        </Canvas>
                      </Border>
                      <ControlTemplate.Triggers>
                        <Trigger Property="UIElement.IsMouseOver" Value="True">
                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值