如何更改WPF控件的缩放但仍占用整个空间?

时间:2012-09-07 10:02:02

标签: wpf

在WPF应用程序中,我使用的是Web浏览器控件(实际上它是awesomium,但我不确定这很重要)。这个控件正在使用某种互操作。

我希望我的应用能够“缩小”网络内容。网络内容应减少到其大小的50%。

如果我仅应用ScalTransform,浏览器控件将被缩小为已检测到(一切都较小),但控件的可见边界也会减少。

我想通过网络控制来获取其容器的完整可用位置。怎么做到这一点?

我现在已经这样做了:

<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?)。

1 个答案:

答案 0 :(得分:0)

此答案适用于版本1.7 RC3(可用here)。

  • Awesomium.NET WPF WebControl实际上是纯WPF(当ViewType设置为Offscreen时,这是默认值)。
  • 查看您要执行的操作示例here