在XAML中,如何将椭圆保持为圆?

Bar*_*aal 19 wpf triggers properties ellipse

我害怕XAML盲目.我正在开发一个MS Surface应用程序,我在ScatterViewItem(最终用户可以调整大小的容器)中有一个椭圆.我想保持椭圆为圆(宽度==高度)并保持尽可能大(对于椭圆的宽度/高度属性,应采用SVI宽度/高度的最小值).

优选仅使用XAML解决方案(使用属性触发器或类似方法).

一如既往地非常感谢您的帮助.

Ste*_*ler 34

几分钟前我偶然发现了这个问题并找到了比@Paul Betts更好的解决方案(如果可以的话,我会评论他的答案,但我不能)

你可以简单地<Ellipse Stretch="Uniform" />用来获得一个圆圈.

资料来源:http://forums.silverlight.net/t/160615.aspx

  • 到目前为止,这是最好的解决方案. (2认同)

Tom*_*ila 15

这很简单Viewbox吗?例如

<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>
Run Code Online (Sandbox Code Playgroud)

Viewbox将扩展其内容来填充的区域Viewbox,默认情况下不按比例缩放.指定的水平和垂直对齐在Ellipse无法拉伸到完整尺寸时保持居中(因为比例缩放).

  • Briljant!Briljant(我至少需要15个字符来告诉你) (2认同)

Ana*_*tts 6

<Ellipse x:Name="anEllipse" Width={Binding Path=ActualHeight ElementName=anEllipse} />
Run Code Online (Sandbox Code Playgroud)

如果你也进行了相对绑定,你可能会因为没有命名而逃脱.

  • 如果边界框的高度大于宽度怎么办?在那种情况下,我想要高度= ActualWidth. (2认同)