WPF 控件自定义模板(举例如一个单选菜单)

样式代码!

 <UserControl.Resources>

         //定义一个样式
        <Style x:Key="RadButton" TargetType="RadioButton">
            <Setter Property="Margin" Value="12 20 0 0"/>
            <Setter Property="Background" Value="Red" />
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="FontSize" Value="18"/>
            <Setter Property="BorderBrush" Value="#FF0EFCFF"/>
            <Setter Property="Foreground" Value="#FF0EFCFF"/>
            <Setter Property="BorderThickness" Value="2"/>
            <Setter Property="Content" Value="2"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="RadioButton">
                        <Grid>//规定模板 需要通过触发器指定修改属性的标签需要设置一个Name
                            <Border Name="Bord" Width="137" Height="40" Background="Red" BorderBrush="#FF0EFCFF" BorderThickness="2">
                                <Label Name="Lab" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" Foreground="#FF0EFCFF" Content="{TemplateBinding Content}"></Label>
                            </Border>
                        </Grid>

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">//选中状态修改Bord的背景色
                                <Setter  Property="Background" Value="#FF6076AD" TargetName="Bord"/>//指定Bord标签修改它的属性
                            </Trigger>
                            <Trigger Property="IsChecked" Value="False">//选中状态修改Bord的背景色
                                <Setter  Property="Background" Value="Transparent" TargetName="Bord"/>//指定Bord标签修改它的属性
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style> 
    </UserControl.Resources>

//测试代码

​​​​​​​ <WrapPanel>
                    <RadioButton Style="{DynamicResource RadButton}" GroupName="Radreason" IsChecked="True">单图模式</RadioButton>
                    <RadioButton Style="{DynamicResource RadButton}" GroupName="Radreason">2*2 模式</RadioButton>
                    <RadioButton Style="{DynamicResource RadButton}" GroupName="Radreason">3*3 模式</RadioButton>
                    <!--<Border  Margin="12 20 0 0" Width="137" Height="40" Background="Red"></Border>-->
                    <!--<Button Style="{DynamicResource Button}" Selector.IsSelected="True">单图模式</Button>
                    <Button Style="{DynamicResource Button}">2*2 模式</Button>
                    <Button Style="{DynamicResource Button}">3*3 模式</Button>-->
                </WrapPanel>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值