2
私はViewboxを持つWPFウィンドウを持っています。このViewboxの子要素のいずれかを任意の画面解像度で同じサイズにしておきたい。スケーラブルではないViewboxの子要素を作る方法
マイXAML:
<Viewbox Name="MyMainViewbox" Stretch="Fill">
<Grid Name="MyMainGrid">
<Image Source="Images/bg.bmp" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill"/>
<Image Name="Thumb1" Source="Images/t1.png" MouseUp="Right_Click" Margin="0, 100, 50, 0" HorizontalAlignment="Right" VerticalAlignment="Stretch" Visibility="Visible"/>
<Image Name="Thumb2" Source="Images/t2.png" MouseUp="Left_Click" Margin="50, 100, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Stretch" Visibility="Visible"/>
<Image Name="CurThumb" Width="640" Height="480" Stretch="UniformToFill" Margin="0, 50, 0, 0" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Hidden"/>
</Grid>
</Viewbox>
ビューボックス内の第2の画像が事前に定義され、異なる画面解像度で微細スケール。 私の問題は、ランタイム中にソースを取得し、すべての解像度で同じ正確なサイズでなければならない3番目のイメージにあります。 4x3のアスペクト比で撮影された写真が含まれており、そのままにしておきたい。
しかし、16x9の解像度では、画像が引き伸ばされます。私はXAMLで固定サイズを設定しようとしました - それは動作しません。私はストレッチをNoneに設定しようとしました - どちらもうまくいきません。私は、このImageのサイズをコードの背後に置くことを試みました。無駄になりました。
この3番目の画像をスケーリングできないようにするには他に何ができますか? これはいくつかの理由からViewbox内にとどまるべきです。
ViewBoxをを設定しますようにのみ、誤っていれば、適切なアスペクト比を取得します[ストレッチ](http://msdn.microsoft.com/en-us/library/system.windows.media.stretch.aspx )を「フィル」に設定します。 – Clemens
私はこの要素に対してStretch = "None"を設定しました。何の効果もありませんでした。 – Flot2011
その理由は何ですか?なぜ2つのビューボックスと3つ目の行を持つグリッドはありませんか? – Paparazzi