WidthとHeightにScaleTransformを反映させる方法、およびHeightとWidthを設定してScaleTransformを行う方法

StackOverflow https://stackoverflow.com/questions/1404217

質問

SilverlightのキャンバスでScaleTransformを使用することに関して問題がありますが、キャンバスは正しくスケーリングされますが、高さと幅の値は常に同じままです。
例えば高さおよび幅の値に関して、200x200が100x100のままであるようにスケーリングされた100x100のキャンバス。これらを更新して新しいサイズを反映する方法

別の関連する問題は、要素の高さと幅を変更し、キャンバスまたはXAML要素を適切にスケーリングする方法です。 100x100要素を200x200に設定すると、その中のすべてが2倍になります-これは、要素の高さと幅のみがスケールを変更するように設定されるソリューションです。

これらの質問は同じ問題に関連しています。Silverlight3.0で機能する解決策があることを願っています


高さと幅を更新して、このCanvasがScrollViewerにあるときに、スクロールバーが新しいサイズに正しく更新されるようにします-これは、高さと幅が新しいスケーリングされたサイズに手動で割り当てられた場合に発生しますが、これはすべてのサイズで機能する必要があります
反対に、同じキャンバスまたは別のキャンバスで使用するためのサイズ変更可能なアイコンになるため、高さと幅が変更されたときに内部の要素が適切にスケーリングされる別のキャンバスが必要です。


Silverlightで直接これが不可能な場合、XAMLでなくてもコードでこの効果を達成する方法があります。ImageBrushを使用するとWPFで可能ですが、Silverlightはこれをサポートせず、スケーラブルキャンバスが必要です。スケーリングされたときに独自の高さと幅になるキャンバス。

役に立ちましたか?

解決

UIElementは、それに適用される変換を認識しません。そのため、widthプロパティとheightプロパティが変換を反映することはできません。


1つのオプションは、トランスフォームをまったく使用せず、 ViewBox (silverlightツールキットより)

ビューボックスは、コンテンツを常にスケーリングしてビューボックスを埋めます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top