1
私は、異なるAppDomainからINativeHandleContractを介してUIコントロールの1つを取得するアプリケーションを持っています。コントロールのサイズが変更されると、ホスト内のFrameworkElementは更新されたサイズを取得しません。私はこれを解決する方法があるかどうか疑問に思っていた。あなたはStackPanelの高さが変わることを期待するパンダを拡張し、崩壊したようWPF UI AddInが希望のサイズを更新しない
public partial class Window1 : Window
{
private StackPanel m_stackPanel;
private Expander m_expander;
private UIElement m_expanderAddIn;
public Window1()
{
InitializeComponent();
m_stackPanel = new StackPanel { Orientation = Orientation.Vertical };
m_stackPanel.Background = Brushes.Red;
m_expander = new Expander
{
ExpandDirection = ExpandDirection.Right,
Background=Brushes.Blue,
IsExpanded=true,
};
m_expander.Expanded += CheckStuff;
m_expander.Collapsed += CheckStuff;
Rectangle r = new Rectangle {Fill = Brushes.LightGray, Height = 300, Width = 300};
m_expander.Content = r;
m_expanderAddIn = FrameworkElementAdapters.ContractToViewAdapter(FrameworkElementAdapters.ViewToContractAdapter(m_expander));
m_stackPanel.Children.Add(m_expanderAddIn);
Content = m_stackPanel;
}
private void CheckStuff(object sender, RoutedEventArgs e)
{
Debug.WriteLine("Expander: " + m_expander.DesiredSize);
Debug.WriteLine("Add in: " + m_expanderAddIn.DesiredSize);
Debug.WriteLine("Stack Panel: " + m_stackPanel.DesiredSize);
}
}
が、それはしていません。ここで
は、サンプルコード(XAMLはちょうど空のウィンドウである)です。どんなアイディアも役に立ちます。ありがとうございます。
雅が、残念ながら、これはフルスケールのために動作しません 私たちの問題のバージョン。しかし、あなたのソリューションは印象的です。 –