大佬教程收集整理的这篇文章主要介绍了Avalonia UI 中带有全尺寸图标的按钮 我也尝试过的:那你是怎么做的?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要一个带有全宽和全高 PathIcon
的按钮(无需手动将 WIDth
和 Height
设置为按钮)。
According to the docs 似乎将 HorizontalAlignment
和 VerticalAlignment
设置为 "Stretch"
should 但是使用以下(简化的)XAML (我还尝试将 button 的 HorizontalContentAlignment
和 VerticalContentAlignment
属性设置为 Stretch
,据我所知,Avalonia 文档中的任何地方都没有真正记录这些属性,但是 IntelliSense 出现了和他们在一起,他们似乎有关系,太好了...... :)
<button name="button"
BACkground="Cyan"
WIDth="50"
Height="50"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<PathIcon BACkground="Red"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
name="normalicon"
Data="{Staticresource copy}"/>
</button>
导致这个结果:
可以看出,红色图标并未覆盖整个青色按钮。我对任何可能干扰的 @H_787_3@margin 或 padding
进行了三次检查,但都没有。
现在显而易见的(而且相当丑陋)的解决方案是做这样的事情:
<button name="button"
BACkground="Cyan"
WIDth="50"
Height="50">
<PathIcon BACkground="Red"
WIDth="50"
Height="50"
name="normalicon"
Data="{Staticresource copy}"/>
</button>
这可能会起作用,但仅适用于这个简化的示例。实际上,我的按钮包含一个面板,其中包含几个可以有条件地切换的图标 (IsVisible="True/false"
),因此将 WIDth
和 Height
设置为相同的值是不切实际的(尤其是在将来必须更改这些值的情况下)。
我已经研究过 How to set width to 100% in WPF、How to get button content to fill width in WPF 和 WPF: SetTing the Width (and Height) as a Percentage Value 之类的问题,但它们似乎都没有解决问题(要么是因为我没有正确使用它们,要么因为 avaloniaui 和 wpf 之间有太多不同?)
我基本上想要实现的是类似于此 CSS 代码段的内容
button {
wIDth: 50px;
height: 50px;
}
button > Panel {
wIDth: 100%;
height: 100%;
}
button > Panel > PathIcon {
wIDth: 100%;
height: 100%;
}
DockPanel
and setTing LastChildFill="True"
(不起作用 - 虽然 DockPanel
dID 填充了按钮(无论如何){{1 }}(停靠面板的最后一个子项)似乎并不关心它应该填充PathIcon
:|ControlTemplate
s (没用 - 再说一次,我不会假装我在尝试时知道自己在做什么,也不会假装这是否是 avaloniaui 中的正确方法: 暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Avalonia UI 中带有全尺寸图标的按钮 我也尝试过的:那你是怎么做的?全部内容,希望文章能够帮你解决Avalonia UI 中带有全尺寸图标的按钮 我也尝试过的:那你是怎么做的?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。