Подтвердить что ты не робот

В XAML, как я могу сохранить эллипс, являющийся кругом?

Я получаю XAML-слепые, я боюсь. Я разрабатываю приложение MS Surface, и у меня есть эллипс внутри ScatterViewItem (контейнер, который конечный пользователь может изменять размер). Я хотел бы сохранить эллипс круг (ширина == высота) и держать его как можно большим (минимальное значение ширины/высоты SVI должно приниматься как для свойств ширины, так и высоты эллипса).

Предпочтительно использовать только решение XAML (используя триггеры свойств или аналогичные).

Ваша помощь очень ценится, как всегда.

4b9b3361

Ответ 1

Может ли простой 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 по центру, когда его невозможно растянуть до полного размера (из-за пропорционального масштабирования).

Ответ 2

Я наткнулся на этот вопрос несколько минут назад и нашел гораздо лучшее решение, чем @Paul Betts (я бы прокомментировал его ответ, если мог, но не могу)

Вы можете просто использовать <Ellipse Stretch="Uniform" /> для получения круга.

Источник: http://forums.silverlight.net/t/160615.aspx

Ответ 3

<Ellipse x:Name="anEllipse" Width={Binding Path=ActualHeight ElementName=anEllipse} />

Возможно, вам удастся не называть это, если вы также относили привязку.