Трябва да покажа Window
във втората колона на моя Grid
, Тъй като това е Window
, Не мога да го добавите директно към мрежата чрез XAML.Мога ли да програмирам центъра на втората колона на моята мрежа, така че да преместя прозореца си там, преди да я покажа?
Вторият ми прозорец е просто фантазия малка кутия за съобщения. Преди това се опитвах да го превръщам в UserControl
вместо a Window
, така че мога да я сложим директно във втората колона на мрежата, но тогава не мога да го направя ShowDialog()
върху него. Трябва да чакам потребителят да кликне върху ОК, преди да се придвижи напред.
Отговори:
1 за отговор № 1За всеки, който търси отговор, ето какво направих:
private void CenterWindowInRightPane(Window window, UIElement rightPane)
{
Point loc = rightPane.TransformToAncestor(this).Transform(new Point(0, 0));
w.Left = (this.Left + loc.X) + (rightPane.ActualWidth - w.ActualWidth) / 2;
w.Top = (this.Top + loc.Y) + (rightPane.ActualHeight - w.ActualHeight) / 2;
}
0 за отговор № 2
Мисля, че MDI интерфейс отговаря на вашия случай: http://wpfmdi.codeplex.com
0 за отговор № 3
Можете да използвате a Popup
към който сте задали мрежата като PlacementTarget
и поставете Placement=Center