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 に答える