繁体   English   中英

在WPF中获得重点突出的“容器控制”

[英]Get the focused “container control” in WPF

我有一个复杂的应用程序,其中包含许多字段,并且几乎没有留给标签的空间来确切描述给定控件的输入内容。 为了解决这个问题,我尝试使用每个控件的工具提示来描述元素。 当用户开始输入这些提示时,这些提示便会消失,并且消失了,因此,我在应用程序的一个区域专门显示了焦点元素的提示。 除包含其他控件(例如DatePicker更复杂的控件外,此方法效果很好,因为聚焦的元素将是DatePickerPARTextBox 这是演示该问题的最小示例:

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel>  
    <TextBox ToolTip="TextBox ToolTip" />
    <DatePicker ToolTip="DatePicker ToolTip" />
    <Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=(FocusManager.FocusedElement).ToolTip}" />
  </StackPanel>
</Window>

有没有一种通用的方法可以解决此焦点问题并显示此类“复合”控件的工具提示(因此,所有此类控件不仅限于DatePicker )?

我想尽办法:

  1. 创建一个附加属性 ,它将为控件提供描述性文本
  2. 让附加的属性类也为您的VM属性绑定描述性文本
  3. 将描述性文本viewmodel属性绑定到标签/文本块
  4. 然后,附加属性侦听控件何时获得焦点,并仅更新相关绑定。

因此,至少在XAML中它可能看起来像这样:

<TextBox local:DescriptiveText="This textbox takes some input" local:DescriptiveTarget="{Binding DescriptiveText} />
<Label Content="{Binding DescriptiveText} />

暂无
暂无

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

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