WPF アプリケーションでは、Web ブラウザー コントロールを使用しています (実際には awesomium ですが、これが重要かどうかはわかりません)。このコントロールは、ある種の相互運用性を使用しています。
アプリで Web コンテンツを「ズームアウト」できるようにしたい。Web コンテンツは、そのサイズの 50% に縮小する必要があります。
私が適用した場合ScalTransform
、ブラウザー コントロールは期待どおりに縮小されます (すべてが小さくなります) が、コントロールの表示範囲も縮小されます。
Web コントロールを使用して、コンテナーの使用可能な場所をすべて使用したいと考えています。これを達成する方法は?
私は今までにこれをやった:
<Canvas SizeChanged="Canvas_SizeChanged"
MinWidth="100"
MinHeight="100">
<Custom:WebControl x:Name="browser"
RenderTransformOrigin="0,0"
Width="100"
Height="100">
<Custom:WebControl.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.5"
ScaleY="0.5" />
<SkewTransform />
<RotateTransform />
<TranslateTransform />
</TransformGroup>
</Custom:WebControl.RenderTransform>
</Custom:WebControl>
</Canvas>
そしてコードビハインドで:
private void Canvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
browser.Width = e.NewSize.Width * 2;
browser.Height = e.NewSize.Height * 2;
}
これは機能していますが、少し非効率的です。これを行うためのより良い場所があるかどうか疑問に思っています (純粋な XML?)。