gpt4 book ai didi

c# - 全局更改工具提示 InitialShowDelay 属性

转载 作者:IT王子 更新时间:2023-10-29 04:41:07 24 4
gpt4 key购买 nike

我有一个应用程序,在功能区控件上设置了一百多个不同的工具提示。所有的工具提示都弹出得相当快(大约半秒),我想增加弹出延迟。经过一些研究,似乎在 WPF 中执行此操作的唯一方法是通过 ToolTipService.InitialShowDelay 属性。

我的问题是,我是否必须通过 XAML 并明确说明

ToolTipService.InitialShowDelay="2000"

对于每个具有工具提示的控件?或者有什么方法可以全局设置此属性,使用类似 Style 的东西?

感谢您的任何想法。

最佳答案

不幸的是,没有简单的方法可以做到这一点。理想情况下,您应该在 FrameworkElement 上设置 ToolTipService.InitialShowDelay 并让它从那里传播,但事实证明这似乎不起作用。

相反,您可以在您想要设置的每个类型控件上设置它,例如:

<Style TargetType="RibbonButton">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
<Style TargetType="RibbonToggleButton">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
<Style TargetType="RibbonDropDownButton">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>

等等

虽然这是一种非常冗长的方法,但至少您只需在每种类型的控件上设置它,而不是每个控件本身 - 如果您在功能区中使用它,那么只有少数几个控件开始。

如果您想更改值,为了避免麻烦,您可能需要使用资源值来构建上述代码:

<sys:Int32 x:Key="ToolTipInitialShowDelay">2000</sys:Int32>
<Style TargetType="RibbonButton">
<Setter Property="ToolTipService.InitialShowDelay"
Value="{StaticResource ToolTipInitialShowDelay}"/>
</Style>
<Style TargetType="RibbonToggleButton">
<Setter Property="ToolTipService.InitialShowDelay"
Value="{StaticResource ToolTipInitialShowDelay}"/>
</Style>
<Style TargetType="RibbonDropDownButton">
<Setter Property="ToolTipService.InitialShowDelay"
Value="{StaticResource ToolTipInitialShowDelay}"/>
</Style>

或者,如果您还没有使用 BasedOn 样式,您可以将其缩短为:

<Style x:Key="ToolTipDefaults">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
<Style TargetType="RibbonButton" BasedOn="{StaticResource ToolTipDefaults}"/>
<Style TargetType="RibbonToggleButton" BasedOn="{StaticResource ToolTipDefaults}"/>
<Style TargetType="RibbonDropDownButton" BasedOn="{StaticResource ToolTipDefaults}"/>

此方法的局限性在于样式只能基于一个父样式,因此如果您已经在使用此模式,则无法执行此操作。

关于c# - 全局更改工具提示 InitialShowDelay 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952965/

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