我害怕XAML盲目。我正在开发一个MS Surface应用程序,我在ScatterViewItem(最终用户可以调整大小的容器)中有一个椭圆。我想保持椭圆为圆(宽度==高度)并保持尽可能大(对于椭圆的宽度/高度属性,应采用SVI宽度/高度的最小值)。
首选XAML解决方案(使用属性触发器或类似方法)。
我们非常感谢您的帮助。
答案 0 :(得分:33)
您只需使用<Ellipse Stretch="Uniform" />
即可获得一个圈子。
答案 1 :(得分:15)
一个简单的Viewbox
可以解决这个问题吗? E.g。
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Canvas Width="100" Height="100">
<Ellipse Fill="Red" Width="100" Height="100" />
</Canvas>
</Viewbox>
Viewbox
会缩放其内容以填充Viewbox
的区域,默认情况下会按比例缩放。指定的水平和垂直对齐使Ellipse
在无法拉伸到完整大小时居中(因为比例缩放)。
答案 2 :(得分:5)
<Ellipse x:Name="anEllipse" Width={Binding Path=ActualHeight ElementName=anEllipse} />
如果您也进行了相对绑定,那么您可能无法命名。