19

恐怕我对 XAML 视而不见。我正在开发一个 MS Surface 应用程序,我在 ScatterViewItem 中有一个椭圆(最终用户可以调整大小的容器)。我想将椭圆保持为圆形(宽度 == 高度)并使其尽可能大(对于椭圆的宽度/高度属性,应采用 SVI 的宽度/高度的最低值)。

首选只有 XAML 的解决方案(使用属性触发器或类似的)。

一如既往地感谢您的帮助。

4

3 回答 3

37

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

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

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

于 2012-10-02T13:58:33.440 回答
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>

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

于 2009-05-25T21:11:28.177 回答
6
<Ellipse x:Name="anEllipse" Width={Binding Path=ActualHeight ElementName=anEllipse} />

如果您也进行了相对绑定,您可能可以不命名它而侥幸逃脱。

于 2009-05-26T06:31:56.093 回答