web-dev-qa-db-ja.com

UWP xaml:アイコンとテキストを含むボタンを表示する方法

ボタンに画像/アイコンとテキストを表示するにはどうすればよいですか?

<StackPanel Name="stackPanel" Orientation="Horizontal" Tapped="stackPanel_Tapped">
    <Button x:Name="button" FontFamily="Segoe MDL2 Assets" Content="&#xE779;" Width="50" Height="50" Background="Transparent" />
    <TextBlock Text="Grades" FontSize="18" VerticalAlignment="Center" />
</StackPanel>

スタックパネルにTaplistenerを追加できますが、スタックパネルに実際のボタンのような視覚効果はありません。

私も試しました:

<Button FontFamily="Segoe MDL2 Assets" Width="50" Height="50" x:Name="button" Content="test">
   <Image x:Name="button" Source="Assets/test.png" />
</Button>

ただし、コンテンツを2回設定することはできません。テキストとアイコンの両方をボタンに入れたいので、ユーザーがクリックすると、ボタンのような視覚効果が得られます。これは可能ですか?または、他の誰かがこれを達成する別の方法を持っていますか?

読んでくれてありがとう。

13
Denny

そのため、直接の重複を見つけることができなかったので(これが以前に尋ねられた種類の質問であると断言できます)、私は正当な答えを提供すると思います。

ボタンのテンプレートの中心にはContentPresenterがあり、これを使用して任意のCLRオブジェクトを渡すことができます。ただし、通過できるのは1つだけということです。ただし、そのオブジェクトが子を含むことができるパネルである場合、コンテンツとしてすべてが渡されます。

したがって、このインスタンスでこのようにすると、次のようになります。

<Button>
    <Image/>
    <TextBlock/>
</Button>

次に失敗し、一度に1つのオブジェクトしか許可されないというメッセージが表示されます。

それらの子を保持する親パネルを提供する場合を除いて、それはすべてをコンテンツとして尊重し、例として望ましい結果を提供します。

<Button>
    <StackPanel>
        <Image/>
        <TextBlock/>
    </StackPanel>
</Button>

したがって、StackPanelは子をホストできるCLRオブジェクトなので、準備は完了です。よろしくお願いいたします。

16
Chris W.