首页 > 其他分享 >WPF中style的应用(小白快速上手)

WPF中style的应用(小白快速上手)

时间:2024-07-13 19:55:23浏览次数:10  
标签:控件 style ModeStyle RadioButton 小白 WPF 词典 资源

1.解释说明

        - 通过设置style资源词典可以批量设置控件,不仅节省大量时间,还能方便统一修改

        - 重复利用Border这个控件,可以自由设计新的控件风格

        - 这里要注意,虽然style也是写在xaml文件中,但是其文件类型为资源词典类型,这里程序示例也进行不同的展开。

2.style资源词典程序示例

        - x:Key="ModeStyle" 即我对这个格式命名为ModeStyle

        - TargetType="RadioButton" 即适用的控件类型为RadioButton

        - Property="Background" 即要修改的属性为背景

        - Value="#80FFFFFF" 即为要设置的值为半透明的白色

        - 里面有个特殊应用,就是在RadioButton新建了一个新RadioButton,同时在新RadioButton里面建立了一个boeder控件,这个控件的背景颜色绑定为最初的RadioButton上

        - 当按钮按下时(IsChecked = true)改变颜色为#FF000068,当鼠标移动到按键上方时(IsMouseOver = true)改变颜色为LightBlue

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <!--文字与视图按钮-->
    <Style x:Key="ModeStyle" TargetType="RadioButton">
        <Setter Property="Background" Value="#80FFFFFF" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Height" Value="35" />
        <Setter Property="Width" Value="100" />
        <Setter Property="BorderBrush" Value="Transparent"/>
        <Setter Property="FontSize" Value="16"/>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="Cursor" Value="Hand "/>
        <Setter Property="GroupName" Value="txtview"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="RadioButton">
                    <!-- 定义按钮的视觉结构 -->
                    <Border Background="{TemplateBinding Background}"
                           BorderBrush="{TemplateBinding BorderBrush}"
                           BorderThickness="{TemplateBinding BorderThickness}"
                           CornerRadius="8">
                        <!-- 倒角边框 -->
                        <ContentPresenter HorizontalAlignment="Center"
                                       VerticalAlignment="Center"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" Value="True">
                            <!-- 当RadioButton被选中时的样式 -->
                            <Setter Property="Background" Value="#FF000068"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <!-- 更改其他需要改变的属性 -->
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="LightBlue"/>
            </Trigger>
        </Style.Triggers>
    </Style>

</ResourceDictionary>

3.前端界面引用

        - <ResourceDictionary Source="Controls.xaml"/> 即为资源词典的引用,资源字典的文件名为“Controls”

        - Style="{DynamicResource ModeStyle}" 即将资源词典风格设置到对应控件上

    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- 引入Controls.xaml资源字典 -->
                <ResourceDictionary Source="Controls.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

<Grid>
    <!--行排布-->
    <Grid.RowDefinitions>
        <RowDefinition Height="35"/>
        <RowDefinition Height="65"/>
        <RowDefinition Height="45"/>
        <RowDefinition Height="65"/>
    </Grid.RowDefinitions>

    <!--排布按钮-->
    <Grid Height="Auto" Grid.Row="2">
        <StackPanel Orientation="Horizontal" >
            <RadioButton x:Name="1"  lan:Xaml.Key="1"  Margin="60,0,0,0" Style="{DynamicResource ModeStyle}" Cursor="Hand" />
            <RadioButton x:Name="2"  lan:Xaml.Key="2"  Margin="20,0,0,0" Style="{DynamicResource ModeStyle}" />
            <RadioButton x:Name="3" lan:Xaml.Key="3"  Margin="20,0,0,0" Style="{DynamicResource ModeStyle}" />
            <RadioButton x:Name="4" lan:Xaml.Key="4"  Margin="20,0,0,0" Style="{DynamicResource ModeStyle}" />
        </StackPanel>
    </Grid>
</Grid>

标签:控件,style,ModeStyle,RadioButton,小白,WPF,词典,资源
From: https://blog.csdn.net/Vae2437426397/article/details/140359776

相关文章

  • 优质WPF免费学习资源分享(含代码)
    WPF自学资源分享背景自身是winform开发,winform岗位比较少。wpf和winfom殊途同归,所以自身最近也在学习wpf。分享一下自己寻找到的wpf学习资源,希望对大家有帮助。学习资源推荐书籍学习资源《深入简出WPF》-刘铁猛作者是微软的高级开发工程师,多年的wpf开发经验。不过作者......
  • 电源纹波测试,从原理图到PCB板和示波器探头设置详解(适合新手小白)
    一、什么是纹波?    简单来说纹波就是叠加在直流信号上的交流干扰信号,是衡量电源好坏的一个重要标准。二、纹波测试点在原理图什么位置?    严谨起见我们尽量选择电路的终端进行测试,比如给MCU芯片供电的引脚,我们需要测量放置在MCU端的电容两端的纹波。如下图......
  • 适合小白学校的springboot2 vue3 图书管理系统idea开发mysql数据库
    博主介绍:专注于Java.net phpphython 小程序等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟我的博客空间发布了1000+毕设题目方便大家学习使用感兴趣的可以先收藏起来,还有大家在......
  • 拿AI做副业,零门槛简单操作,小白也能轻松入门!
    前言在过去的23年,这一年称人们之为AIGC的元年,特别是openAI发布了GPT,随着AI爆火,一时间,各种玩法是层出不穷,早期靠AI做项目的也是赚的盆满钵满。我不知道小伙伴们发现了没有,现如今AI正在慢慢改变我们的生活,说个简单的例子,midjourney,这是一个画图的AI,之前设计一张图需要三......
  • WPF开源的一款免费、开箱即用的翻译、OCR工具
    思维导航前言WPF介绍工具快捷键工具下载工具部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言今天大姚给大家分享一款由WPF开源的、免费的(MITLicense)、即开即用、即用即走的翻译、OCR工具:STranslate。WPF介绍WPF是一个强大的桌面应......
  • 【WPF控件样式】
    自定义弹窗单选框CheckBox扁平化<Stylex:Key="CheckBoxStyle1"TargetType="{x:TypeCheckBox}"><SetterProperty="BorderThickness"Value="1"/><SetterProperty="Template"><Setter.V......
  • WPF中引用不到相对路径图片?
    在wpf中使用相对路径运行项目时却不显示图片怎么解决?新建img文件夹添加所需要的图片选中图片右键属性设置属性重新生成即可运行效果转载请标明出处!......
  • AI绘画Stable Diffusion应用场景探索,AI绘画到底能做什么?小白入门必看!
    大家好,我是画画的小强StableDiffusion自2022年开源发布以来,其应用场景已经迅速扩展到了多个领域,艺术家和设计师使用SD来生成创意图像,探索新的视觉风格,或者作为灵感来源。它可以用于生成插图、概念艺术、角色设计等。游戏开发者利用SD来快速创建游戏资产,如角色、环境和道具......
  • 新手小白必须得学会的文本文件操作,资料资源均可分享!
    文件读取处理使用read():#使用'read'方法读取文件的所有内容withopen('resources/training_log.txt','r')asfile:content=file.read()print(content)#报错处理版本#使用'read'方法读取文件的所有内容#使用'utf-8'......
  • AI绘画零基础入门必看,新手小白扫盲教程,一文搞懂MIdjourney和Stable Diffusion有什么不
    大家好,我是画画的小强Midjourney是目前全网最强大的AI绘画平台,用户只需要简单地输入关键词描述,就能获得多幅风格各异的绘画作品,无需任何专业的绘画技能,即刻拥有让人惊叹的艺术创造力。在MidjourneyV5版本之前,用户可以享受免费使用额度,只需要注册一个账户即可在线体验AI......