【WPF】TextBox样式重写注意事项

1、普通控件重写需要添加一行

 <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"  Margin="{TemplateBinding Padding}"></ContentPresenter>

2、TextBox之类的编辑控件重写,需要填加一行

 <ScrollViewer x:Name="PART_ContentHost"></ScrollViewer>

只有这样才能进入编辑模式

举个栗子:

<ControlTemplate x:Key="RoundTextBoxTemplate" TargetType="TextBox">
        <Border CornerRadius="5" BorderBrush="LightSkyBlue" BorderThickness="2" Background="{TemplateBinding Background}" Margin="3">
            <ScrollViewer x:Name="PART_ContentHost"></ScrollViewer>
        </Border>
    </ControlTemplate>

    <Style x:Key="RoundTextBoxStyle" TargetType="TextBox">
        <Setter Property="Template" Value="{DynamicResource ResourceKey=RoundTextBoxTemplate}" ></Setter>
    </Style>

上面就是实现最简单的TextBox重写样式的功能了

时间: 2025-01-02 12:56:35

【WPF】TextBox样式重写注意事项的相关文章

wpf TextBox 验证

以下内容适合像我一样的新手!有什么好的建议!还望大家指点! 效果图如下: 第一步:先 新建文件夹 CheckValueLibrary  在新建一个类 PhoneNumberCheck 用于验证 此类继承 ValidationRule 类! PhoneNumberCheck  类代码如下(正则表达式有错,可借鉴方法): <span style="font-size:14px;">namespace Demo1.CheckValueLibrary { // public cla

WPF自定义样式篇-DataGrid

WPF自定义样式篇-DataGrid 先上效果图: 样式: <!--DataGrid样式-->    <Style TargetType="DataGrid">        <Setter Property="RowHeaderWidth" Value="0"></Setter>        <Setter Property="AutoGenerateColumns"

求助 WPF ListViewItem样式问题

求助 WPF ListViewItem样式问题 .NET 开发 > Windows Presentation Foundation Вопрос 0 Нужно войти <Style TargetType="ListViewItem"> <!--<Setter Property="Margin" Value="0,1,0,0"/>--> <Setter Property="Height

WPF TextBox 实现CornerRadius圆角

<Grid Background="Gray" Height="230" Width="229"> <Border CornerRadius="15" BorderBrush="White" BorderThickness="5" Margin="12,23,20,174" Background="White"> <T

WPF TextBox提示文字设定

WPF TextBox框提示文字,鼠标划入提示文字消失 <TextBox Width="248" VerticalContentAlignment="Center" BorderThickness="0" CaretBrush="White"> <TextBox.Resources> <VisualBrush x:Key="HintText" AlignmentX="

WPF设置样式的几种方式

第一种方式是直接使用Setter来进行,可以对Background等进行设置. <Window.Resources> <Style TargetType="Button"> <Setter Property="Background" Value="Red"/> </Style></Window.Resources> 第二种是直接将比较复杂一点的Style放置到Window.Resourc

css样式重写

//我们经常想修改插件的某一个或几个样式特性,并保留其它的样式.而不是把某个css全部重写一遍. /*原有样式*/.ninew {padding: 0 10px;width: 600px;height: 226px; display: inline-block;vertical-align: top;}/*原有样式*/ /*重写样式*/ .ninew {padding: 0 10px;width:auto !important;height:auto !important;display: in

WPF TextBox 控件获取热键并转为 win32 Keys

WPF 中使用的 Key 对象与 WinForm 中的 Keys 不同,两者的按键枚举对象与物理键的映射关系有功能键上有区别,无法进行类型强制转换.使用 win api 注册热键时,需要将之转换成 win32 的键值,可以使用 KeyInterop.VirtualKeyFromKey(),另外,Keys 可以保存组合鍵,Key 则只是单个按键.Keys 的成员中有个 Modifiers,从下图可以看出 0~15位之外,是用来存放功能键的. 从两张图对比上,可以直观地发现两者的区别. 示例代码:

WPF DataGrid 样式设置

隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 11 12 <DataGrid AutoGenerateColumns="False"  Name="dataGrid1"  VerticalAlignment="Top"       CanUserSortColumns="Fals