Авто размера ElementHost к своему содержанию - PullRequest
7 голосов
/ 25 февраля 2011

У меня есть небольшой элемент управления WPF, в котором TextBlock с TextWrapping установлен на Wrap. Я пытаюсь разместить это в существующем приложении WinForms. У меня есть ElementHost, прикрепленный к верхней части формы, и я хотел бы измерить высоту ElementHost на основе высоты, которая требуется TextBlock. Есть ли способ сделать это?

Ответы [ 2 ]

5 голосов
/ 25 февраля 2011

Механизм изменения размера WinForms отличается от WPF.

Вы пытались установить для свойства AutoSize элемента ElementHost значение true?

0 голосов
/ 19 января 2015

Я нашел ответ здесь

это код по ссылке выше:

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); 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...