繁体   English   中英

具有提示作为自定义/用户控件的WPF文本框

[英]WPF TextBox with Hint As Custom/User Control

因此,我正在尝试设计尽可能简单的UI,为此,我需要像Android一样在文本框内提供提示。 我找到了解决该问题的许多解决方案(请参阅WPF中的水印/提示文本/占位符TextBox如何向WPF文本框添加提示文本? ),但是每种解决方案似乎都使​​用了大量XAML代码,样式,触发器和排序方式。 我想做的是,我想拥有一个文本框子类,该子类具有一个HintText属性,可以在任何地方使用它,但是到目前为止,我什至都没有关闭。 这是我最近得到的:

<TextBox x:Class="MyProgram.CustomControls.HintTextBox"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" Text="ASDF"
             d:DesignHeight="174" d:DesignWidth="708">
    <TextBox.Resources>
        <VisualBrush x:Key="VB">
            <VisualBrush.Visual>
                <Label Content="{Binding Path=HintText}" Foreground="LightGray" FontSize="25"/>
            </VisualBrush.Visual>
        </VisualBrush>
    </TextBox.Resources>
    <TextBox.Style>
        <Style TargetType="TextBox">
            <Setter Property="Background" Value="{StaticResource VB}"/>
        </Style>
    </TextBox.Style>
</TextBox>

和:

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

    public static DependencyProperty HintTextProperty = DependencyProperty.Register("HintText", typeof(String), typeof(HintTextBox));
}

缺少触发器定义,但这不是这里的主要问题。 我的主要问题是我似乎无法绑定HintText属性。 我无法通过XAML分配它,并且由于某种原因也无法绑定到它。 我还尝试绑定到TextBox自己的Text属性,只是看它是否可以工作,而不能。 我究竟做错了什么? 还是我完全将错误的树吠叫?

编辑:我还需要一个密码框相同的功能,否则就无法解决...为什么他们到底如何将文本框和密码框分开呢?

问题在于,VisualBrush资源“ VB”可以在所有元素之间共享,并且标签内容不能被绑定。

您可以尝试使用带有空文本提示的示例文本框

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM