gpt4 book ai didi

c# - 基于其他控件的 Gotfocus 显示控件的文本

转载 作者:行者123 更新时间:2023-11-30 17:12:44 24 4
gpt4 key购买 nike

我是 WPF 开发的新手。

我正在使用 MVVM 模式开发一个 wpf 应用程序。我有一个“ComboBox”和一个“TextBlock”控件。将焦点放在 ComboBox 上时,Textblock 应显示 Combobox 的工具提示。组合框绑定(bind)到 View 模型。

<ComboBox Name="cmbSystemVoltage" 
ToolTip="RMS value of phase-phase voltage in kV"
ItemsSource="{Binding Path=SystemVoltageStore}"
SelectedItem="{Binding Path=SelectedSystemVoltage}"
DisplayMemberPath="SystemVoltageLevel"/>

我怎样才能做到这一点。这样做的示例代码会很有帮助。

谢谢,须知

最佳答案

使用 DataTrigger 并绑定(bind)每个 ElementName:

<StackPanel>
<TextBlock>
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=cmbSystemVoltage, Path=IsKeyboardFocusWithin}"
Value="True">
<Setter Property="Text"
Value="{Binding ElementName=cmbSystemVoltage, Path=ToolTip}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<ComboBox Name="cmbSystemVoltage" ToolTip="RMS value of phase-phase voltage in kV" />
</StackPanel>

编辑

如果您想在 TextBlock 中显示多个控件的工具提示,我宁愿订阅 PreviewGotKeyboardFocus 事件:

<Window PreviewGotKeyboardFocus="Window_PreviewGotKeyboardFocus">
<StackPanel>
<TextBlock x:Name="toolTipIndicator" />
<ComboBox ToolTip="Sample text" />
<TextBox ToolTip="Other sample text" />
</StackPanel>
</Window>

.

void Window_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
FrameworkElement element = e.NewFocus as FrameworkElement;

if (element != null && element.ToolTip != null)
{
this.toolTipIndicator.Text = element.ToolTip.ToString();
}
else
{
this.toolTipIndicator.Text = string.Empty;
}
}

关于c# - 基于其他控件的 Gotfocus 显示控件的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com