我处于一种情况,我有按钮并将样式设置为此按钮的静态资源(此处为CreateNewItemButtonStyle)。 我还有一个工具提示,只要我将鼠标悬停在此工具提示上,我就会显示一些文字(" SelectAllLines" here)。 当我将鼠标悬停在按钮区域上时,它会正确地显示工具提示文本,不包括内容区域(我的意思是当我将鼠标悬停在内容上时#34; AL"它显示" AL"在工具提示中,它应该'这样做,它应该表明 只有" SelectAllLines"在整个按钮区域工具提示)。
我发现这是因为我正在使用的风格。
但是如何在我的整个按钮区域上的工具提示上有相同的文字,我通过做ToolTip ="选择的行"
<Button
x:Name="AllLinesButtonX"
Background="{StaticResource FlowPowderBlackBrush}"
Click="AllLinesButtonX_OnClick"
Command="{Binding AllLinesCommand}"
Content="AL"
MouseRightButtonUp="SelectGeometryToggleButton_OnMouseRightButtonUp"
Style="{StaticResource CreateNewItemButtonStyle}" //If i remove this line it stops showing "AL", just shows "SelectedAllLines" which is the correct behavior
ToolTip="SelectAllLines"
</Button>
这是风格的关键:
<Style x:Key="CreateNewItemButtonStyle" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisualStyle}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="TextBlock.FontSize" Value="10" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<ContentPresenter
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{TemplateBinding Content}"
TextBlock.TextAlignment="Center" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource ActiveButtonBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource ActiveBorderBrush}" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource ActiveButtonBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource ActiveBorderBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Cursor" Value="Arrow" />
</Trigger>
</Style.Triggers>
答案 0 :(得分:0)
将IsHitTestVisible="false"
设置为按钮样式的ContentPresenter
中的ControlTemplate
。
更多信息:https://msdn.microsoft.com/en-us/library/system.windows.uielement.ishittestvisible(v=vs.110).aspx