1

Silverlight の Canvas で ScaleTransform を使用することに関して問題があります。Canvas は正しくスケーリングされますが、Height と Width の値は常に同じままです。
たとえば、100x100 の Canvas をスケーリングして、Height と Width の値に関して 200x200 が 100x100 に見えるようにします。これらを更新して新しいサイズを反映するにはどうすればよいでしょうか。

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

これらの質問は同じ問題に関連しています - Silverlight 3.0 で動作する解決策があることを願っています


高さと幅を更新して、この Canvas が ScrollViewer 内にある場合、Scrollbar が新しいサイズに合わせて正しく更新されるようにする必要があります。
逆に、高さと幅が変更されたときに内部の要素が適切にスケーリングされる別のキャンバスが必要です。これは、同じまたは別のキャンバスで使用するサイズ変更可能なアイコンになるためです。


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

4

1 に答える 1

2

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


1つのオプションは、変換をまったく使用せずにViewBoxを使用することです(silverlightツールキットから)

ビューボックスは、常にビューボックスを満たすようにコンテンツをスケーリングします。

于 2009-09-10T11:26:30.333 に答える