扩展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 中做任何您想做的事情(编辑模板、应用样式等),并且您可以从后台代码访问它。
我想创建一个具有扩展功能的 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 中做任何您想做的事情(编辑模板、应用样式等),并且您可以从后台代码访问它。