如何在Silverlight for WP7中禁用按钮单击效果?

时间:2012-05-07 05:26:20

标签: silverlight windows-phone-7

我正在使用Silverlight + XNA创建一个WP7应用程序。在那里,我使用图像作为按钮的背景(Silverlight元素),每当我按下按钮时,就会出现白色背景。我怎么能摆脱它?它似乎是按钮的默认属性。

4 个答案:

答案 0 :(得分:3)

将按钮的ClickMode设置为按将禁用效果

<Setter Property="ClickMode" Value="Press"/>

答案 1 :(得分:1)

这个问题有一些现有的主题:

  1. check this
  2. or this
  3. 我实现了这个,就像@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)

您应该使用表达式混合来编辑按钮的样式。例如,您可以在按钮处于按下状态时编辑背景或边框画笔。