我想制作像Shakes& amp;坐立不安。我被卡在主菜单上,我一直在那里过于复杂的东西。我做了一个网格布局,我将按钮放在那里,但每个按钮都是一张图片。 我将ImageBrush 用于我想创建的每个按钮的图片。
我想为每个按钮创建 ONE风格,以便他们根据所拥有的x:Name
或x:Key
更改背景。因此,使用x:Name
或x:Key
“PlayGame”的按钮会发现它是PlayGame.png,PlayGame_Hover
,PlayGame_OnClick
,其中“PlayGame”是变量。
换句话说,我希望有一个样式可以过滤按钮的x:name或x:键,并在以后将其用作变量,所以我可以这样做:{StaticResource VARIABLENAME}
我现在的守则是:
<ImageBrush x:Key="PlayGame">
<ImageBrush.ImageSource>
<BitmapImage UriSource="./Pictures/PlayGameButton.png"/>
</ImageBrush.ImageSource>
</ImageBrush>
<ImageBrush x:Key="PlayGame_Hover">
<ImageBrush.ImageSource>
<BitmapImage UriSource="./Pictures/PlayGameButton_Hover.png"/>
</ImageBrush.ImageSource>
</ImageBrush>
<ImageBrush x:Key="PlayGame_OnClick">
<ImageBrush.ImageSource>
<BitmapImage UriSource="./Pictures/PlayGameButton_OnClick.png"/>
</ImageBrush.ImageSource>
</ImageBrush>
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="{StaticResource PlayGame}" />
<Setter Property="FontSize" Value="15" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border CornerRadius="4" Background="{TemplateBinding Background}">
<Grid>
<ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource PlayGame_Hover}" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource PlayGame_OnClick}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
答案 0 :(得分:0)
我找到了一个不太有效的解决方案,但不是我真正想要的解决方案
你可以给Style一个
你必须给这个部分按钮:
这样你就必须为你想拥有的每个不同的按钮制作一个风格,但它会起作用,如果效率不是关键,你会很高兴。: