我正在使用Silverlight + XNA创建一个WP7应用程序。在那里,我使用图像作为按钮的背景(Silverlight元素),每当我按下按钮时,就会出现白色背景。我怎么能摆脱它?它似乎是按钮的默认属性。
答案 0 :(得分:3)
将按钮的ClickMode设置为按将禁用效果
<Setter Property="ClickMode" Value="Press"/>
答案 1 :(得分:1)
这个问题有一些现有的主题:
我实现了这个,就像@thongaduka建议的那样。检查下面的完整实现。
<StackPanel Height="auto" HorizontalAlignment="Left" Margin="0,0,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="auto" >
<StackPanel.Resources>
<Style x:Key="ButtonTemplate_ok" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00" Storyboard.TargetProperty="Background" Storyboard.TargetName="hoverbutton">
<DiscreteObjectKeyFrame KeyTime="00:00:00">
<DiscreteObjectKeyFrame.Value>
<ImageBrush ImageSource="/StickGameSlX;component/Images/buttons/ok_pressed.png"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused"/>
<VisualState x:Name="Unfocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="hoverbutton">
<Border.Background>
<ImageBrush ImageSource="/StickGameSlX;component/Images/buttons/ok_unpressed.png"/>
</Border.Background>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Resources>
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" >
<Button Style="{StaticResource ButtonTemplate_ok}" Content="OK" HorizontalAlignment="Center" Margin="546,296,198,130" Name="button1" VerticalAlignment="Center" Click="button1_Click" Width="57" Height="53" BorderBrush="White" Foreground="Black"/>
</Grid>
</StackPanel>
答案 2 :(得分:0)
您必须为按钮创建样式。为每个视觉状态更改按钮的属性。像设置背景图像属性的差异状态,如按下,正常等。并为您的按钮应用该样式。 Microsoft Expression Blend将通过几个简单的步骤帮助您实现这一目标。
答案 3 :(得分:0)
您应该使用表达式混合来编辑按钮的样式。例如,您可以在按钮处于按下状态时编辑背景或边框画笔。