首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据ElementHost大小调整窗体大小

根据ElementHost大小调整窗体大小
EN

Stack Overflow用户
提问于 2012-07-20 14:03:18
回答 5查看 3.8K关注 0票数 3

我有一个包含ElementhostForm(winform)。在运行时,我将我的WPF Usercontrol托管到此elementhost。我已经使用了AutoSize = True作为元素主机。

Elementhost根据WPF用户控件的大小调整自身的大小。而是如何根据ElementHost的大小调整窗体的大小。

谢谢,

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-20 17:45:01

这就是答案:

将ElementHost.Child设置为WPF用户控件后。我将执行以下函数:

代码语言:javascript
复制
public System.Windows.Size GetElementPixelSize(UIElement element) 
    { 
        Matrix transformToDevice; 
        var source = PresentationSource.FromVisual(element);
        if (source != null)
            transformToDevice = source.CompositionTarget.TransformToDevice;
        else     
            using (var Hwndsource = new HwndSource(new HwndSourceParameters()))
                transformToDevice = Hwndsource.CompositionTarget.TransformToDevice;


        if (element.DesiredSize == new System.Windows.Size()) 
            element.Measure(new System.Windows.Size(double.PositiveInfinity, double.PositiveInfinity)); 

        return (System.Windows.Size)transformToDevice.Transform((Vector)element.DesiredSize); 
    } 

原始方法发布于:

现在,我从新的大小设置客户端大小。

票数 2
EN

Stack Overflow用户

发布于 2012-07-20 15:00:22

那么,难道不能订阅size changes并更新主机表单吗?

票数 0
EN

Stack Overflow用户

发布于 2012-07-20 15:30:22

我有一个解决方案,但不确定在WPF桌面应用程序的output.It工作。您需要做的是将高度和宽度设置为NAN (而不是数字)

代码语言:javascript
复制
this.Width = double.NaN;
this.Height = double.NaN;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11573690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档