2016-12-16 12 views
7

画像/アイコンとテキストをボタンに表示するにはどうすればよいですか?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> 

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

私も試してみた:

<Button FontFamily="Segoe MDL2 Assets" Width="50" Height="50" x:Name="button" Content="test"> 
    <Image x:Name="button" Source="Assets/test.png" /> 
</Button> 
をしかし、私は二度コンテンツを設定することはできません。ボタンにテキストとアイコンの両方が必要なので、ユーザーがクリックすると、ボタンのような視覚的な効果があります。これは可能ですか?それとも他の誰かがこれを達成する別の方法を持っていますか?

読んでいただきありがとうございます。

+4

'' –

+0

@ChrisW。ありがとうございました!あなたがそれをすることができるかはわかりませんでした。 – Denny

+1

@ChrisW。答えとして投稿して、Dennyがそれを受け入れることができます。 –

答えて

10

私は直接複製を見つけることができませんでした(私はこれが前に尋ねられた質問のタイプです)と正当な回答を提供すると思います。

ボタンのテンプレートの中心には、ContentPresenterがあり、任意のCLRオブジェクトを渡すことができます。しかし、注意しなければならないのは、1つしか渡すことができないということです。しかし、そのオブジェクトが子を含むことができるパネルであれば、コンテンツとしてすべてを渡します。

だから我々はそれをこのようにしなかった場合は、この例では:

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

を、それが失敗し、一度に許可される1つのオブジェクトのみに文句を言います。

あなたがそれらの子供を保持するために、親パネルを提供する場合、それはコンテンツとしてすべてを尊重し、一例として、望ましい結果を提供します除き:StackPanelは子供をホストできるCLRオブジェクトであるので、そう

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

を、あなたは行くのが良いです。これが喜んで助けてくれることを願って!

+0

私も直接の答えを見つけることができませんでした:( – Denny

+0

これは期待どおりに動作します! – yehanny

+1

素晴らしい答えは、ボタンを完全に柔軟にします。 – peterincumbria

関連する問題