我有一个托管控件的wpf窗口。
窗口的高度和宽度设置为SizeToControl
。
现在我需要将此窗口相对于其父窗口的位置放置。(基本上是右上角位置)。
(所以我的窗口Top = ParentWindow.Top, and Left = ParentWindow.Left + ParentWindow.ActualWidth - control.ActualWidth
以便我的窗口位于父窗口内但位于右下角)
所以我需要设置窗口的顶部和左侧。要做到这一点,我需要在其中托管的控件的实际宽度....但我实际上只能做到这一点,
Window.Show(control,parent)
有没有办法解决这个问题?在实际显示控件之前,如何获得控件的实际渲染宽度?
谢谢!
答案 0 :(得分:1)
你尝试过这种方法吗?
public partial class ShellWindow : Window
{
public ShellWindow(IShellPresentationModel model)
{
InitializeComponent();
this.Loaded += ShellWindow_Loaded;
}
void ShellWindow_Loaded(object sender, RoutedEventArgs e)
{
var innerWindow = new InnerWindow();
innerWindow.Owner = this;
innerWindow.Loaded += InnerWindow_Loaded;
innerWindow.Show();
}
void InnerWindow_Loaded(object sender, RoutedEventArgs e)
{
var w = (InnerWindow)sender;
w.Owner = this;
w.Top = this.Top;
w.Left = this.Left + this.ActualWidth - w.ActualWidth;
}
}