C# 如何根据可用空间更改控件对齐方式?

C# 如何根据可用空间更改控件对齐方式?,c#,wpf,C#,Wpf,想象一下。我有一个边框,其中包含一些自定义wpf控件,我们称之为MyControl。调整窗口大小时,此边框会自动拉伸(以填充可用空间)MyControl大小是固定的。现在,我希望我的控件在适合可用空间时具有HorizontalAlignment=“Center”,在不适合可用空间时具有HorizontalAlignment=“Left”。不过,我很难弄清楚如何实施这种行为 我想,我可以订阅Border的SizeChanged事件,并根据Border和MyControl的Actual Width更

想象一下。我有一个
边框
,其中包含一些自定义wpf控件,我们称之为
MyControl
。调整窗口大小时,此
边框会自动拉伸(以填充可用空间)<代码>MyControl
大小是固定的。现在,我希望我的控件在适合可用空间时具有
HorizontalAlignment=“Center”
,在不适合可用空间时具有
HorizontalAlignment=“Left”
。不过,我很难弄清楚如何实施这种行为


我想,我可以订阅Border的
SizeChanged
事件,并根据
Border
MyControl
Actual Width
更改代码背后的对齐方式,但难道没有更简单的方法吗?这可以通过数据绑定或附加行为实现吗?

如果将控件的
宽度
高度
设置为固定值,将
水平对齐
垂直对齐
设置为
拉伸
,而不是
中心
,则会自动执行此操作:

<Border BorderBrush="Red" BorderThickness="5">
    <my:MyControl Width="200" Height="150"
                  HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>


@NikitaBrzhak“适合可用空间”是什么意思?是当边框宽度值大于MyControl宽度值时吗?@voo,是的。还有5个chars@tanuj_loop,当没有足够的空间显示控件时,这些路线的行为会有所不同<代码>左侧
从右侧控制作物,
居中
-从两侧控制作物。这就是我的情况的关键区别。