随笔 - 394  文章 - 0  评论 - 946  阅读 - 143万 

第一种方式是直接使用Setter来进行,可以对Background等进行设置。

<Window.Resources>
   <Style TargetType="Button">
            <Setter Property="Background" Value="Red"/>
</Style></Window.Resources>

第二种是直接将比较复杂一点的Style放置到Window.Resources中:

<Window.Resources>
<LinearGradientBrush x:Key="CheckedState" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFE7E1E1" Offset="0"/>
        <GradientStop Color="black" Offset="1"/>
        <GradientStop Color="gray" Offset="0.581"/>
    </LinearGradientBrush>
</Window.Resources>

使用的时候,直接利用 Background="{StaticResource CheckedState}"即可。

第三种是利用Template方式来进行,这种可以进行比较复杂的样式制作:

复制代码
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication4.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="640" Height="480">
<Window.Resources>
    <LinearGradientBrush x:Key="CheckedState" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFE7E1E1" Offset="0"/>
        <GradientStop Color="black" Offset="1"/>
        <GradientStop Color="gray" Offset="0.581"/>
    </LinearGradientBrush>

    <LinearGradientBrush x:Key="UnCheckedState" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFE7E1E1" Offset="0"/>
        <GradientStop Color="gray" Offset="1"/>
        <GradientStop Color="gray" Offset="0.581"/>
    </LinearGradientBrush>

    <Style TargetType="TabItem">
        <Setter Property="Template">
            <Setter.Value>
                  <ControlTemplate TargetType="TabItem">
                          <Grid>
                              <Border Name="Border" BorderThickness="1" BorderBrush="Gray" Background="{StaticResource UnCheckedState}"  Width="80" Height="25" Margin="0,0,1,0" CornerRadius="4,4,0,0">
                                <Grid>
                                     <ContentPresenter x:Name="ContentSite"
                                              VerticalAlignment="Center"
                                              HorizontalAlignment="Center"
                                              ContentSource="Header"
                                              Margin="12,2,12,2"
                                              RecognizesAccessKey="True" />
                                </Grid>    
                            </Border>     
                        </Grid>
                        
                         <ControlTemplate.Triggers>
                          <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Panel.ZIndex" Value="100" />
                            <Setter TargetName="Border" Property="Background" Value="{StaticResource CheckedState}" />
                            <Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" />
                          </Trigger>
                          <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
                            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
                            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
                          </Trigger>
                        </ControlTemplate.Triggers>
                        
                    </ControlTemplate>
                    
                    
            </Setter.Value>
        </Setter>
    </Style>

</Window.Resources>
    
    <Grid x:Name="LayoutRoot">
        <TabControl Margin="0,0,0,116">
            <TabControl.Resources>
                <Style TargetType="TabPanel">
                        <Setter Property="HorizontalAlignment" Value="Center" />
                </Style>
            </TabControl.Resources>
            <TabItem Header="TabItem" >TabItem</TabItem>
            <TabItem Header="My Item">My Item</TabItem>
            <TabItem Header="My Database">My Database</TabItem>
            <TabItem Header="TabItem"></TabItem>
            <TabItem Header="TabItem"></TabItem>
            <TabItem Header="TabItem"></TabItem>
        </TabControl>
    </Grid>
</Window>
复制代码

当然,制作出来的效果也就是好看一些,显示效果如下:

 

posted on   程序诗人  阅读(10367)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示