wpf Avalonia UI中带有全尺寸图标的按钮

8qgya5xd  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(306)

我想有一个按钮与全宽和全高PathIcon内(而不必手动设置WidthHeight相同的像素值的按钮)。
根据文档,似乎将HorizontalAlignmentVerticalAlignment设置为"Stretch" * 应该 * 可以使用以下方法(简体)XAML (我还尝试将按钮的HorizontalContentAlignmentVerticalContentAlignment属性设置为Stretch,这两个属性都不正确。据我所知,在阿瓦隆尼亚文档中没有任何地方真正记录过,但IntelliSense提出了它们,它们似乎是相关的,soooo...:)

<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>

导致这个结果:

可以看出,红色图标没有覆盖整个青色按钮。我三次检查任何Margin s或Padding s可能会干扰,但没有。
现在,显而易见的(也是相当丑陋的)解决方案是这样做:

<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"),因此将WidthHeight设置为所有图标的相同值是不实际的(特别是在将来必须更改这些值的情况下)。
我已经看过了像How to set width to 100% in WPFHow to get button content to fill width in WPFWPF: Setting the Width (and Height) as a Percentage Value这样的问题,但它们似乎都不起作用(要么是因为我没有正确使用它们,要么是因为avaloniauiwpf之间有太多的差异?)
我基本上想实现的是类似于这个CSS片段的东西

Button {
    width: 50px;
    height: 50px;
}

Button > Panel {
    width: 100%;
    height: 100%;
}

Button > Panel > PathIcon {
    width: 100%;
    height: 100%;
}

我也尝试过:

那么你是怎么做到的呢?

webghufk

webghufk1#

按钮中的水平对齐

<Button Content="Add Element"  HorizontalAlignment="Stretch" ></Button>

Screeshot

相关问题