我有一个Button
通过模板定义的:
<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}" />
样式定义在ResourceDictionary
:
<Style x:Key="ButtonOk" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Rectangle x:Name="ButtonBackground" Color="Red"/>
<TextBlock x:Name="ButtonText"
VerticalAlignment="Center" HorizontalAlignment="Center"
Text="{TemplateBinding Content}" />
<TextBlock x:Name="ButtonCustomToolTip"
Text="{TemplateBinding ToolTip}"
VerticalAlignment="Top" HorizontalAlignment="Right"
FontSize="10" Foreground="Yellow"
Visibility="{TemplateBinding ToolTip, Converter={StaticResource StringToVisibility}}">
<TextBlock.BitmapEffect>
<DropShadowBitmapEffect
ShadowDepth="1"
Softness="0"
Color="Black"
Opacity="0.4"
Direction="270"
/>
</TextBlock.BitmapEffect>
</TextBlock>
</Grid>
<ControlTemplate.Triggers>
<!-- triggers there -->
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ButtonCustomToolTip
当OkButtonShortcut
字符串为空时折叠。
这可以通过父样式的资源部分中的样式来实现。
<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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句