c# - 自定义控件 BorderThickness

标签 c# wpf textbox user-controls border

我创建了一个自定义 WPF 用户控件。问题是,有时我需要 BorderThickness 为 0,有时需要 BorderThickness 为 1。

<UserControl ...>
   <clay:TextBox x:Name="ClayTextBox" 
            BorderThickness="1" >
   </clay:TextBox>
</UserControl>

如果我像这样在 xaml 文档中使用控件:

<clay:TextBox x:Name="ClayTextBox" 
    BorderThickness="0" >
 </clay:TextBox>

...边框始终为 1。我该如何解决?

最佳答案

在你的自定义控件模板样式中,你应该将父容器控件设置为边框,然后使用模板绑定(bind)来绑定(bind)边框粗细。在这里,我假设您的 CustomControl 继承了一个将 BorderThickness 作为属性的控件。

<ControlTemplate TargetType="{x:Type clay:TextBox}">
    <Border BorderThickness="{TemplateBinding BorderThickness}">
          //Remaining xaml that makes up your custom control.
    </Border>
</ControlTemplate>

关于c# - 自定义控件 BorderThickness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28189498/

相关文章:

c# - 如何将插入符号位置设置为 WPF 密码框中的特定索引

c# - WPF 用户控制资源

.net - XAML中的WPF设置 Storyboard 目标

c# - 如何将8bit声音转换为16bit

c# - 如何解释此堆栈跟踪

wpf - 为什么 Xilium.CefGlue WPF 示例加载页面如此缓慢?

asp.net:使启用 = false 的文本框变灰,但需要获取值

textbox - Angular 6 - Material 文本框 float 占位符不起作用

c# - IDisposable 是 Liskof 所指的行为吗?

c# - 如何从 .NET 以编程方式调用 SSIS?