私は単純なキャンバスアイテムを持っています。私はキャンバスの親としてスクロールビューに追加する必要があります。 しかし、私は後にキャンバスとスクロールビューのSilverlightズームエリア
canvas.RenderTransform=new ScaleTransform(){...}
Scroolbarsを設定し、問題とfased表示されていないか、正しくない作業。 どんな情報もありがとうございます。
私は単純なキャンバスアイテムを持っています。私はキャンバスの親としてスクロールビューに追加する必要があります。 しかし、私は後にキャンバスとスクロールビューのSilverlightズームエリア
canvas.RenderTransform=new ScaleTransform(){...}
Scroolbarsを設定し、問題とfased表示されていないか、正しくない作業。 どんな情報もありがとうございます。
レンダートランスフォームは、UIレンダリングプロセスの後半で行われます。それは最終的にコントロールのレンダリングでマトリックス変換を実行します。スクロールビューアはこのトランスフォームを完全に認識しません。スクロールバーは元のCanvasの変形されていないサイズに基づいています。
silverlightツールキットには、LayoutTransformer
コントロールが含まれています。このコントロールは、コンテンツをレイアウトプロセスの一部として適用し、変換後のサイズを希望のサイズとしてレポートします。
この検討: - Canvas
けれども
<ScrollViewer Width="200" Height="200" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<toolkit:LayoutTransformer>
<toolkit:LayoutTransformer.LayoutTransform>
<ScaleTransform ScaleX="2" ScaleY="2" />
</toolkit:LayoutTransformer.LayoutTransform>
<Canvas Width="150" Height="150" Background="Aquamarine">
<Rectangle Fill="Blue" Canvas.Top="10" Canvas.Left="10" Width="30" Height="30" />
</Canvas>
</toolkit:LayoutTransformer>
</ScrollViewer>
を含むスクロールビューア(200)よりも小さいサイズ(150)を有し、それは(300)が大きくなるように、それがスケーリングされます。 LayoutTransformer
はキャンバスの変換後サイズである300として、その望ましいサイズを報告します。したがって、ScrollViewerにはスクロールバーが表示されます。 LayoutTransformer
の恩恵がなければ、ScrollViewer
は、適用されたRenderTransformがあってもCanvasのサイズが150であるとしか見えません。
あなたは私の一日を保存しました! – Evgeny