WPF 样式设计之——radioButton

如何在WPF的cs文件中定义图片RadioButton呢?
把图片加到了resource文件里面,希望在窗口中显示图片radiobutton,请问这样的radiobutton应该怎么定义呢?以下为处理的样式:

XML code

<RadioButton.Style>
    <Style TargetType="{x:Type RadioButton}">
        <Style.Resources>
            <Style x:Key="CheckRadioFocusVisual">
                <Setter Property="Control.Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Rectangle
                                Margin="14,0,0,0"
                                StrokeThickness="1"
                                Stroke="Black"
                                StrokeDashArray="1 2"
                                SnapsToDevicePixels="true"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Style.Resources>
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderBrush" Value="#dddddd"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RadioButton}">
                    <BulletDecorator Background="Transparent">
                        <BulletDecorator.Bullet>
                            <!-- 这里是修改过的部分 开始 -->
                            <Border
                                Background="{TemplateBinding Background}"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                                VerticalAlignment="{TemplateBinding VerticalAlignment}"
                                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
                                <Image x:Name="PART_Image" Width="12">
                                    <Image.Source>
                                        <DrawingImage>
                                            <DrawingImage.Drawing>
                                                <GeometryDrawing Brush="OrangeRed" Geometry="M 0 0 L 3.5 4 L 7 0 Z"/>
                                            </DrawingImage.Drawing>
                                        </DrawingImage>
                                    </Image.Source>
                                    <Image.Effect>
                                        <DropShadowEffect BlurRadius="1" Opacity="0.75" ShadowDepth="0"/>
                                    </Image.Effect>
                                </Image>
                            </Border>
                            <!-- 这里是修改过的部分 结束 -->
                        </BulletDecorator.Bullet>
                        <ContentPresenter
                            Margin="{TemplateBinding Padding}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            RecognizesAccessKey="True"/>
                    </BulletDecorator>
                    <ControlTemplate.Triggers>
                        <Trigger Property="HasContent"
                                    Value="true">
                            <Setter Property="FocusVisualStyle"
                                    Value="{StaticResource CheckRadioFocusVisual}"/>
                            <Setter Property="Padding"
                                    Value="4,0,0,0"/>
                        </Trigger>
                        <Trigger Property="IsEnabled"
                                    Value="false">
                            <Setter Property="Foreground"
                                    Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                        </Trigger>
                        <!-- 自定义触发器 开始 -->
                        <Trigger Property="IsChecked" Value="true">
                            <Setter TargetName="PART_Image" Property="Source">
                                <Setter.Value>
                                    <DrawingImage>
                                        <DrawingImage.Drawing>
                                            <GeometryDrawing Brush="OrangeRed" Geometry="M 0,4 L 3.5,0 L 7,4 Z"/>
                                        </DrawingImage.Drawing>
                                    </DrawingImage>
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                        <!-- 自定义触发器 结束 -->
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</RadioButton.Style>
时间: 2024-10-30 06:44:10

WPF 样式设计之——radioButton的相关文章

WPF 样式(Style)初体验 (一) 作用域

刚刚接触WPF的开发,顿时对样式设计产生了兴趣.因为之前对CSS比较感兴趣,不难发现WPF的Style和CSS的模式很类似.下面我就根据自己初步的理解和CSS样式表对比做下总结,有理解不正确的地方还希望各位前辈指正. (1)全局样式控制 影响的是整个项目的样式,我们可以在App.xaml文件里定义全局的样式(这里就类似于我们在一个web的项目中添加一个全局的CSS文件,然后在每个页面引用CSS样式): <Application.Resources> <Style TargetType=&

C# WPF 一个设计界面

微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. C# WPF 一个设计界面 今天正月初三,大家在家呆着挺好,不要忘了自我充电. 武汉人民加油,今早又有噩耗,24号(8号)一路走好. 阅读导航 本文背景 代码实现 本文参考 源码 1. 本文背景 一个不错的界面设计 2. 代码实现 使用 .NET Framework 4.8 创建名为 "Dashboard1" 的WPF模板项目,添加3个Nuget库:MaterialDesignTh

【Material Design视觉设计语言】应用样式设计

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells [Material Design视觉设计语言]章节列表 [Material Design视觉设计语言]开篇 [Material Design视觉设计语言]Material Design设计概述 [Material Design视觉设计语言]应用布局设计 [Material D

wpf样式绑定 行为绑定 事件关联 路由事件实例

代码说明:我要实现一个这样的功能  有三个window窗口  每个窗体有一个label标签  当我修改三个label标签中任意一个字体颜色的时候  其他的label标签字体颜色也变化 首先三个窗体不用贴代码了  直接添加三个就行了 样式绑定: 先添加数据源  代码如下: (注:为了防止propertyName硬编码写死   可以使用CallerMemberName附加属性来获取默认的属性名称 或者使用表达式目录树Expression<Func<T>>的方式来获取) 1 public

调查表样式设计

调查表样式设计: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="

WPF Telerik TreeListView样式设计

Telerik控件 TreeListView 修改其中样式 1.添加TreeListView控件 <telerik:RadTreeView x:Name="ObjecTreeView" Padding="0,5,0.5,5" Grid.Row="1" BorderThickness="0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" te

WPF样式

<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:UC="clr-namespace:WpfApplication1" xmlns:UC

打印样式设计

如果你对许多从事网页开发的人提起打印样式,他们第一反映会想到使用打印CSS.当网页文档需要被打印时,我们已经习惯于创建一个打印样式表.这些样式表确保打印版本清晰并且保证用户不会打印出巨幅图像.然而,CSS也被用来排版图书,商品目录以及宣传册 - 这些内容在以前可能从来没有被设计成网页. 在这篇文章里,我们将探索一些已有的CSS模块,它们不是在网页浏览器中使用,而是为了解决打印和分页的问题.我将解释选择器,属性和值的作用.最后我会提供一个实际例子,你可以把它作为自己试验的基础.对于这个例子,我们需

写自己的WPF样式 - 按钮

做一个后台管理小程序,据说WPF的界面比较"炫",于是选择使用WPF来开发.既然用了WPF当然需要做好看点了,于是稍微研究了下WPF的样式,废话不多说下面开始自定义一个按钮样式: (1)在App.xaml文件里自定义一个按钮样式 ,"MyWpfButton": <Application x:Class="WPFCustomerStyleStudy.App" xmlns="http://schemas.microsoft.com/w