0

この問題に対する簡単な答えは見つかりません。

ButtonWPFでを作成し、背景画像を付けました。最初の私の問題は国境でしたが、それから私はそれを取り除くことができました

Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"

ここで問題となるのは、ウィンドウMouseOver効果が表示されることです。それを取り除く簡単な方法はありますか?をに置き換えてみValueましたImageText動作しましたが、ボタンを設定できなくなりました。

<Button x:Name="gameBtnAnswer1" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Cursor="Hand" Padding="-4" Margin="0,0,18,0" Height="38" Width="336" HorizontalAlignment="Left" FontSize="16" Foreground="White" Click="gameBtnAnswer1_Click" BorderThickness="0" Focusable="False">
    <Button.Background>
        <ImageBrush ImageSource="themes/blue/button_answer.png" Stretch="None" TileMode="Tile"/>
    </Button.Background>
    <Button.Content>
        Hier steht die Antwort #1
    </Button.Content>
</Button>
4

2 に答える 2

1

私の意見では、ボタン ControlTemplate を再定義するのが最善の方法です。 ここに msdn doc .

トリガーのないテンプレートの例:

<Style TargetType="Button">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
  <Setter Property="MinHeight" Value="23"/>
  <Setter Property="MinWidth" Value="75"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="Button">
        <Border 
          x:Name="Border"  
          CornerRadius="2" 
          BorderThickness="1"
          Background="{StaticResource NormalBrush}"
          BorderBrush="{StaticResource NormalBorderBrush}">
          <ContentPresenter 
            Margin="2"
            HorizontalAlignment="Center"
            VerticalAlignment="Center"
            RecognizesAccessKey="True"/>
        </Border>
        <ControlTemplate.Triggers>




        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
于 2013-02-02T07:56:48.387 に答える
0

最初に頭に浮かぶのは、ボタンのテンプレートを再設計することです。テンプレートには、多くの状態を持つ VisualStateManager クラスが表示されます。それらの状態の 1 つは MouseOver です。その MouseOver 宣言内に、ボタンを好きなように見せたいものを何でも入れることができます。たとえば、その VisualStateManager にはデフォルトの視覚状態もある必要があるため、宣言をデフォルトの視覚状態からマウスオーバーの視覚状態にコピーするだけで同じになります。

于 2013-02-02T07:56:45.120 に答える