如何在按钮中显示图像/图标和文本?
<StackPanel Name="stackPanel" Orientation="Horizontal" Tapped="stackPanel_Tapped">
<Button x:Name="button" FontFamily="Segoe MDL2 Assets" Content="" 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>
但我不能两次设置内容。我希望按钮中同时包含文本和图标,这样当用户单击它时,它将具有像按钮一样的视觉效果。这可能吗?或者还有其他人有其他方法来实现这一目标吗?
谢谢阅读。
因此,由于我找不到直接的重复项(我可以发誓这是以前被问过的问题类型),我想我会提供一个合法的答案。
按钮模板的核心是ContentPresenter
它允许您传入任何 CLR 对象。但需要注意的是,只有一个可以通过。但是,如果该对象是一个能够包含子对象的面板,那么它将把所有内容作为内容传递。
因此,在这种情况下,如果我们这样做:
<Button>
<Image/>
<TextBlock/>
</Button>
然后它会失败并抱怨一次只允许一个对象。
除非您提供一个父面板来容纳这些子面板,否则它会将其全部视为内容,并将提供所需的结果,例如:
<Button>
<StackPanel>
<Image/>
<TextBlock/>
</StackPanel>
</Button>
所以自从StackPanel
是一个可以托管子对象的 CLR 对象,您就可以开始了。希望这有帮助,干杯!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)