0

背景用の大きな画像と前景用の小さな画像の2つの画像を想定します。前景は背景の真ん中に正確にとどまり、その相対的な量(たとえば、50%)をカバーするため、ユーザーはそれらを単一の画像として表示します。

Window問題は、さまざまなサイズで塗りつぶすために背景が必要なことです。そのStretch値をに設定すると、UniformToFillそれが行われます。しかし、どうすれば前景を背景の50%をカバーし続けることができますか?

4

1 に答える 1

0

コンテナのサイズを変更すると「それ自体」を拡大縮小できるため、ベクター画像を使用することをお勧めします。

次に、ウィンドウサイズに基づいて次のようにマージンを設定します。

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Height="400" Width="400">
<Grid>
    <Image Margin="100">
        <Image.Source>
            <DrawingImage>
                <DrawingImage.Drawing>
                    <GeometryDrawing Brush="#FF000000" Geometry="M14.800615,5.6499605L14.800615,14.800346C10.630442,17.910477 7.8903284,22.840685 7.8903284,28.44092 7.9003286,37.871319 15.530646,45.511639 24.961039,45.521641 34.391431,45.511639 42.011749,37.871319 42.04175,28.44092 42.03175,22.840685 39.291636,17.910477 35.121462,14.800346L35.121462,5.6599612C43.841825,9.5601254,49.912077,18.280493,49.912077,28.44092L49.922077,28.44092C49.912077,42.231503 38.741611,53.391972 24.961039,53.391972 11.170465,53.391972 0,42.231503 0,28.44092 0,18.270493 6.0902529,9.5501251 14.800615,5.6499605z M19.570043,0L30.237043,0 30.237043,33.917 19.570043,33.917z" />
                </DrawingImage.Drawing>
            </DrawingImage>
        </Image.Source>
    </Image>
</Grid>

ウィンドウの50%を常に使用するには、コンバーターを使用してプロパティをバインドできます。

また、多分これはあなたを助けることができます。

于 2012-09-19T18:18:28.467 に答える