7

我有一个小的 WPF 控件,它有一个 TextBlock,TextWrapping 设置为 Wrap。我试图在现有的 WinForms 应用程序中托管它。我将 ElementHost 停靠在表单的顶部,我想根据 TextBlock 所需的高度来调整 ElementHost 的高度。有没有办法做到这一点?

4

2 回答 2

5

WinForms 的大小调整机制与 WPF 不同。

您是否尝试过将ElementHost的AutoSize属性设置为 true?

于 2011-02-25T20:25:03.613 回答
0

我在这里找到了答案

这是来自上面链接的代码:

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); 
} 
于 2015-01-19T16:05:40.960 回答