protected override void LayoutChildren(double x, double y, double width, double height) { if (width == -1 || height == -1) { return; } Size req = OperationBar.Measure(width, height).Request; Size taskListReq = TaskListFrame.Measure(width, height).Request; Size currentToolbarReq = _curPage.MeasureToolBar(width, height).Request; if (currentToolbarReq.Width + req.Width < width) { ToolbarSeperator.IsVisible = currentToolbarReq.Width + req.Width > width - 30; OperationBar.Layout(new Rectangle(width - req.Width, 0, req.Width, req.Height)); ContentFrame.Layout(new Rectangle(0, 0, width, height - taskListReq.Height)); } else { ToolbarSeperator.IsVisible = false; OperationBar.Layout(new Rectangle(0, 0, req.Width, req.Height)); ContentFrame.Layout(new Rectangle(0, req.Height, width, height - taskListReq.Height)); } TaskListFrame.Layout(new Rectangle(0, height - taskListReq.Height, taskListReq.Width, taskListReq.Height)); }