WPF隐藏样式中按钮的工具提示
我有一个通过模板定义的WPF隐藏样式中按钮的工具提示,wpf,Wpf,我有一个通过模板定义的按钮: <Button Name="DialogOk" Grid.Column="0" Margin="4,0,0,0" Content="{Binding OkButtonText}" ToolTip="{Binding OkButtonShortcut}" Style="{DynamicResource ButtonOk}" Click="DialogOk_Click" Visibi
按钮
:
<Button Name="DialogOk" Grid.Column="0" Margin="4,0,0,0" Content="{Binding OkButtonText}"
ToolTip="{Binding OkButtonShortcut}" Style="{DynamicResource ButtonOk}"
Click="DialogOk_Click" Visibility="{Binding DialogOkButtonVisibility}" />
按钮自定义工具提示
在OkButtonShortcut
字符串为空时折叠
但我仍然看到默认的工具提示,就像一个空白的白色矩形
当光标位于我的按钮上时。如何删除此默认工具提示区域?并找到了如何重新定义工具提示样式的解决方案:
<Button Name="BtnOk" Grid.Column="0" Margin="4,0,0,0" Content="{Binding OkButtonText}"
ToolTip="{Binding OkButtonShortcut}" Style="{DynamicResource ButtonOk}"
Click="DialogOk_Click">
<Button.Resources>
<Style TargetType="ToolTip" BasedOn="{StaticResource {x:Type ToolTip}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Grid Visibility="Collapsed"></Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Resources>
</Button>
并找到了如何重新定义工具提示样式的解决方案:
<Button Name="BtnOk" Grid.Column="0" Margin="4,0,0,0" Content="{Binding OkButtonText}"
ToolTip="{Binding OkButtonShortcut}" Style="{DynamicResource ButtonOk}"
Click="DialogOk_Click">
<Button.Resources>
<Style TargetType="ToolTip" BasedOn="{StaticResource {x:Type ToolTip}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Grid Visibility="Collapsed"></Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Resources>
</Button>
这可以通过父样式的参考资料部分中的样式来实现
<Grid>
<Grid.Resources>
<Style x:Key="ExampleButtonStyle" TargetType="{x:Type Button}">
<Style.Resources>
<Style TargetType="ToolTip">
<Style.Triggers>
<!-- Add triggers for values you want to hide. -->
<Trigger Property="Content" Value=" ">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
</Grid.Resources>
<StackPanel>
<!-- Tooltip not hidden -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip="Hello">
</Button>
<!-- Tooltip hidden -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip=" ">
</Button>
<!-- Tooltip not hidden because trigger doesn't hide it. -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip="">
</Button>
<!-- Tooltip hidden -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip="{x:Null}">
</Button>
</StackPanel>
</Grid>
这可以通过父样式的参考资料部分中的样式来实现
<Grid>
<Grid.Resources>
<Style x:Key="ExampleButtonStyle" TargetType="{x:Type Button}">
<Style.Resources>
<Style TargetType="ToolTip">
<Style.Triggers>
<!-- Add triggers for values you want to hide. -->
<Trigger Property="Content" Value=" ">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
</Grid.Resources>
<StackPanel>
<!-- Tooltip not hidden -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip="Hello">
</Button>
<!-- Tooltip hidden -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip=" ">
</Button>
<!-- Tooltip not hidden because trigger doesn't hide it. -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip="">
</Button>
<!-- Tooltip hidden -->
<Button Margin="10" Height="50" Width="100" Content="{Binding OkButtonText}"
Style="{DynamicResource ExampleButtonStyle}"
Visibility="{Binding DialogOkButtonVisibility}"
ToolTip="{x:Null}">
</Button>
</StackPanel>
</Grid>
您正在折叠文本块
而不是实际的工具提示
。我知道。这就是为什么我要问如何折叠工具提示ToolTip=“{x:Null}”
Good point,但是我需要以其他方式设置我的自定义tolltip,这是我不想做的。所以,让它成为备用方式。还有别的办法吗?有没有可能在某个地方设置工具提示样式,所以它被折叠了?如果你设置了一个触发器,仅当url为空时才将其设置为null,那么你仍然会有工具提示
,只有当触发器设置它时它才会为空。你正在折叠文本块
而不是实际的工具提示
。我知道。这就是为什么我要问如何折叠工具提示ToolTip=“{x:Null}”
Good point,但是我需要以其他方式设置我的自定义tolltip,这是我不想做的。所以,让它成为备用方式。还有别的办法吗?是否可以在某个地方设置工具提示样式,使其处于折叠状态?如果您设置了一个触发器,仅当url为空时才将其设置为null,则您仍将保留工具提示,它仅在触发器设置时才为空。