2016-12-16 144 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> 

我可以一個taplistener添加到StackPanel的,但是這不會使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。張貼它作爲答案丹尼可以接受它。 –

回答

10

所以,因爲我找不到直接重複(我可以發誓這是以前問過的問題的類型)我想我會提供一個合法的答案。

按鈕模板的核心部分是ContentPresenter,它允許您傳入任何CLR對象。但要注意的是隻有一個可以通過。但是,如果該對象是一個能夠容納兒童的面板,那麼它將通過所有內容作爲內容。

所以在這種情況下,如果我們這樣做了:

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

然後,它會失敗,並抱怨允許在一次只有一個對象。

除非你提供一個父面板持有那些孩子,它尊重所有的內容,並提供所需的結果爲例:

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

那麼既然StackPanel是一個CLR對象,它可以託管孩子,你很好走。希望這有助於,歡呼!

+0

我也找不到直接的答案:( – Denny

+0

這個按預期工作,謝謝! – yehanny

+1

很好的答案,使按鈕完全靈活。 – peterincumbria

相關問題