ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

WPF学习——控件模板

2021-07-20 16:03:02  阅读:141  来源: 互联网

标签:控件 定义 自定义 当鼠标 内容 WPF Border 模板


<Window x:Class="ControlTemplate.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:ControlTemplate"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
            <Setter Property="FontSize" Value="30"/>
            <Setter Property="Margin" Value="10"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border BorderBrush="Yellow" BorderThickness="3" CornerRadius="10" Background="{TemplateBinding Background}">
                            <DockPanel LastChildFill="False">
                                <TextBlock Text="❥(^_-)"  HorizontalAlignment="Left"
                                            VerticalAlignment="Center" Margin="5,0,0,0"/>
                                <ContentPresenter Margin="10,0,0,0" VerticalAlignment="{TemplateBinding VerticalAlignment}"></ContentPresenter>
                            </DockPanel>
                        </Border>
                        <ControlTemplate.Triggers >
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" Value="Red"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    
    <Grid>
        <StackPanel>
            <Button Height="60" Content="hello"   VerticalAlignment="Center" 
                    Style="{StaticResource ButtonStyle1}"/>
            <Button Height="80" Content="style"  VerticalAlignment="Center" 
                    Style="{StaticResource ButtonStyle1}"/>
        </StackPanel>
    </Grid>
</Window>

ControlTemplate用于自定义控件。

ContentPresenter 是控件的内容呈现。Border重新定义你想要的控件外形,增加的额外内容写在Border中。

这里的Trigger定义在ControlComplate内,当鼠标移动到按钮上时,改变背景颜色为红色。

XAML代码中包含了样式、触发器等内容。

标签:控件,定义,自定义,当鼠标,内容,WPF,Border,模板
来源: https://www.cnblogs.com/lch902268/p/15035369.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有