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,当没有足够的空间显示控件时,这些路线的行为会有所不同<代码>左侧
从右侧控制作物,居中
-从两侧控制作物。这就是我的情况的关键区别。