Button中使用模板後,Trigger中使用MouseOver時候,滑鼠滑動時候不能觸發響應
阿新 • • 發佈:2018-12-31
專案中遇到在重寫Window類,自定義一個最大,最小和關閉按鈕。此時出現一個問題,繪製最小按鈕的橫線的時候,MouseOver有觸發修改背景顏色,但是實際滑鼠划過去後,只有觸到橫線的時候才會觸發那個Trigger。但是提前設定了背景後就不會。
解決方法:將Border的Background設定成“Transparent”.
<Style x:Key="ButtonMinStyle" TargetType="{x:Type Button}"> <Setter Property="Control.Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border Name="bor1" BorderThickness="0" CornerRadius="2" SnapsToDevicePixels="True" Height="22" Width="22" Background="Transparent"> <Path Margin="4" Data="M5 10 L5,10 10 10" Fill="#FFF4F4F5" Stretch="Fill" Stroke="White" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="true" SourceName="bor1"> <Setter Property="Background" Value="Red" TargetName="bor1"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>