码迷,mamicode.com
首页 > Windows程序 > 详细

WPF 样式设计之——radioButton

时间:2017-05-31 13:58:11      阅读:1099      评论:0      收藏:0      [点我收藏+]

标签:round   padding   radio   ima   文件   set   content   显示   部分   

如何在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>

WPF 样式设计之——radioButton

标签:round   padding   radio   ima   文件   set   content   显示   部分   

原文地址:http://www.cnblogs.com/jaen-home/p/6923329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!