我有 winform 托管 WPF 控制文本块,其中文本块的内容是动态的。我想根据内容设置文本块的高度。意思是文本块托管在 Windows 用户控件 (TitleBarHost) 中,而这个 Windows 控件又在运行时动态添加到另一个 winform 中。下面是动态添加控制的一段代码。
Control titleBar = new TitleBarHost(titleInfo);
(titleBar as ICustomUI).Initialize(_application, extraData);
panelHeader.Controls.Add(titleBar);
titleBar.Dock = DockStyle.Top;
标题栏视图.xaml
<Grid>
<TextBlock x:Name="txtTitleBar" Text="{Binding Text}" Style="{StaticResource TextBlockStyle}"/>
</Grid>
标题栏主机.cs
public void Initialize(object application, object configurationData)
{
m_Model = new TitleBarModel(this.titleInfo, application, configurationData);
m_ViewModel = new TitleBarViewModel(m_Model);
m_View = new TitleBarView { DataContext = m_ViewModel };
if (m_ViewModel != null)
{
m_View.FormatString(m_ViewModel.Text);
}
elementHost1.Child = m_View;
}
我需要根据内容动态设置文本块高度。我尝试使用文本块的 ActualHeight 道具但不起作用。也尝试使用高度自动,不起作用!