wpf的样式属性、触发器以及控件模板简单介绍

20 篇文章 0 订阅
13 篇文章 1 订阅

         wpf初学者必须了解的样式,属性,触发器,wpf的博大精深可与web相媲美,不多说,上代码,毕竟talk is cheap ,let me show  code

<Window x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources >  
        <!--简单的属性-->
        <Style x:Key="buttonStyle"  TargetType="Button">
            <Setter Property="Width" Value="100"/>
            <Setter Property="Height"  Value="50"/>
            <Setter Property="Margin" Value="0 20 0 0"/>
        </Style>
        
        <!--属性的继承-->
        <Style x:Key="buttonStyle2"  TargetType="Button" BasedOn="{StaticResource buttonStyle}"  >
            <Setter Property="Background" Value="Red"/>
        </Style>
        
        <!--单条件触发器-->
        <Style x:Key="buttonStyle3"  TargetType="Button" BasedOn="{StaticResource buttonStyle}"  >
            <Style.Triggers >
                <Trigger Property="IsMouseOver"  Value="True">
                    <Setter Property="FontSize" Value="20"></Setter>
                </Trigger>
                <Trigger Property="IsFocused"  Value="True">
                    <Setter Property="FontSize" Value="50"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
        
        <!--多条件触发器-->
        <Style x:Key="buttonStyle4"  TargetType="Button" BasedOn="{StaticResource buttonStyle}"  >
            <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition  Property="IsMouseOver" Value="True"></Condition>
                        <Condition  Property="IsFocused" Value="True"></Condition>
                    </MultiTrigger.Conditions>
                    <MultiTrigger.Setters >
                        <Setter Property="Background"  Value="Blue"></Setter>
                    </MultiTrigger.Setters>
                </MultiTrigger>
            </Style.Triggers>
        </Style>
        
        <!--控件模板-->
        <ControlTemplate  x:Key="buttontemp" TargetType="Button" >
            <Border Background="Yellow" Width="100" Height="60" CornerRadius="20" >
            <StackPanel  Orientation="Horizontal" HorizontalAlignment="Center"  VerticalAlignment="Center">
                <TextBlock  Text="hhh"  FontSize="30"></TextBlock>
            </StackPanel>
            </Border>
        </ControlTemplate>  
    </Window.Resources>
    <Grid>
        
        <StackPanel Orientation="Vertical" >
            <Button  Style="{StaticResource buttonStyle}"  Content="Button" HorizontalAlignment="Left"    />
            <Button Style="{StaticResource buttonStyle2}"  Content="Button" HorizontalAlignment="Left"    />
            <Button Style="{StaticResource buttonStyle3}"  Content="Button" HorizontalAlignment="Left"    />
            <Button Style="{StaticResource buttonStyle4}"  Content="Button" HorizontalAlignment="Left"    />
            <Button    Content="Button" HorizontalAlignment="Left"  Template="{StaticResource  buttontemp}"   />
            <TextBox HorizontalAlignment="Left" Height="23" Margin="406,323,0,0" TextWrapping="Wrap" Text="{Binding Test }" VerticalAlignment="Top" Width="120"/>

        </StackPanel>
      
    </Grid>
</Window>
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值