扩展TextBox控件并更改部分默认样式

Extend TextBox control and change part of default style

我想创建一个具有扩展功能的 WPF 文本框的 class 库(dll 文件)。但我想更改 TextBox 的默认样式的一部分(IsMouseOver 属性 触发器)。

我创建了一个新的 WPF 用户控件库项目,从中删除了生成的 .XAML 和 .cs 文件,并添加了一个新的 class 文件。然后我派生自 TextBox class,但我不知道如何访问样式 XAML。

我不知道应该怎么做..

在我的项目中,我目前只有这个 .cs 文件,没有 .XAML 文件:

namespace CustomControls
{
    public class CustomTextBox : TextBox
    {
        private string customProperty;
        public string CustomProperty
        {
            get { return customProperty; }
            set { customProperty = value; }
        }
    }
}

你可以这样做

<TextBox x:Class="CustomControls.MyFolder.CustomTextBox"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

</TextBox>

代码隐藏

public partial class CustomTextBox : TextBox
{
    public CustomTextBox()
    {
        InitializeComponent();
    }
}

现在您可以在 xaml 中做任何您想做的事情(编辑模板、应用样式等),并且您可以从后台代码访问它。