2016-08-15 42 views
0

我有一個複雜的應用程序,它有很多領域,並且沒有足夠的空間標籤來準確描述給定控件的輸入內容。爲了解決這個問題,我嘗試使用每個控件的工具提示來描述元素。由於那些工具提示正在阻礙並且在用戶開始輸入時消失,我專門爲我的應用程序提供了一個區域來顯示焦點元素的工具提示。除了包含其他控件的更復雜的控件(例如, DatePicker,因爲關注的元素將是DatePickerPARTextBox。下面是一個小例子,證明問題:在WPF中獲得關注的「容器控件」

<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)?

回答

0

關閉我的頭頂,我會去這個方法:

  1. 創建Attached Property,將提供描述性文本的控制
  2. 有附加屬性類也需要結合你的虛擬機屬性的描述性文本
  3. 綁定的描述性文本視圖模型屬性標籤/文本塊
  4. 然後附加屬性聽出來,當控件獲得焦點和剛剛更新相關的綁定。所以在XAML

至少它可能是這個樣子:

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