0
我有一個自定義的按鈕樣式以下觸發器:樣式不適用
<Trigger Property="IsEnabled" Value="true">
<Setter Property="BorderBrush" Value="#FFFFFFFF" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="BorderBrush" Value="#FFFF9800" />
<Setter Property="Foreground" Value="#FFFF9800" />
</Trigger>
但他們並不在我的GUI應用在所有。以下是整個風格。
<Window.Resources>
<Style x:Key="Button.Hoverless" TargetType="{x:Type ButtonBase}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ButtonBase}">
<Border Name="border"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="Selector.IsSelected" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#FFFF9800" />
<Setter Property="Opacity" Value="0.50" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="Selector.IsSelected" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#FFFFB850" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="False" />
<Condition Property="Selector.IsSelected" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#FFFF9800" />
</MultiTrigger>
<Trigger Property="IsEnabled" Value="true">
<Setter Property="BorderBrush" Value="#FFFFFFFF" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="BorderBrush" Value="#FFFF9800" />
<Setter Property="Foreground" Value="#FFFF9800" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="border" Property="Opacity" Value="0.95" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
我是新來的WPF樣式,因此我不知道我在哪裏出錯了。還包括按鈕代碼:
<Button x:Name="btnScanFP1" Content="Scan Fingerprint" Grid.Column="1"
HorizontalAlignment="Left" Margin="10,10,0,0" Grid.Row="4" VerticalAlignment="Top"
Width="227" Height="21" Grid.ColumnSpan="2" FontSize="11" Click="btnScanFP1_Click"
Background="{x:Null}" BorderBrush="#FFFF9800" Foreground="#FFFF9800"
Style="{StaticResource Button.Hoverless}"/>
您已將該鍵定義爲「Button.Hoverless」,它是DottedXamlName的類型。這種類型的規範用於屬性和事件限定參考,也用於附加成員。所以刪除。從你的關鍵名字。 – user1672994
此外,在windows.Resources中創建的資源是一個鍵控資源,因此它將自動應用。所以,當你需要這種風格時,你應該將其定義爲'Style =「{StaticResource ResourceKeyName}」'。如果你想申請所有的按鈕,然後刪除鍵屬性。 – user1672994
您明確地將按鈕上的背景設置爲'#FFFF9800',其具有[更高的優先級](https://msdn.microsoft.com/library/ms743230%28v=vs.100%29.aspx#listing )比風格觸發器中的設置者要多。使用'Buttonbase'作爲'TargetType'可能有點奇怪,但不應該是一個問題,因爲'Button'從'ButtonBase'繼承。 –