UWP xaml:如何显示带有图标和文字的按钮?

时间:2016-12-16 20:08:27

标签: xaml uwp imagebutton 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>

我可以在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>

但我无法将内容设置两次。我想要一个按钮中的文本和图标,所以当用户点击它时,它将具有像按钮一样的视觉效果。这可能吗?或者其他人有其他方法来实现这一目标吗?

感谢阅读。

1 个答案:

答案 0 :(得分:16)

因为我找不到直接复制品(我可以发誓这是之前被问到的问题类型)我想我会提供一个合理的答案。

按钮模板的核心是import time import urllib.request import urllib.parse stock = 'a' def finvizKeyStats(stock): try: sourceCode = urllib.request.urlopen('http://finviz.com/quote.ashx?t='+stock).read() pbr = sourceCode.split('P/B</td><td width="8%" class="snapshot-td2" align="left"><b>')[1].split('</b></td>')[0] print(pbr) except Exception as e: print('Exception:', e) finvizKeyStats('a') ,它允许您传入任何CLR对象。但需要注意的是,只有一个可以通过。但是,如果该对象是一个能够包含子节点的面板,那么它将把所有内容作为内容传递。

所以在这种情况下,如果我们这样做:

ContentPresenter

然后它会失败并抱怨一次只允许一个物体。

除非您提供父母小组来容纳这些孩子,否则它将所有孩子视为内容,并将提供所需的结果作为示例:

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

因为<Button> <StackPanel> <Image/> <TextBlock/> </StackPanel> </Button> 是一个可以托管孩子的CLR对象,所以你很高兴。希望这会有所帮助,欢呼!