我是WPF的新手,我在重新调整主窗口时遇到了一些问题。我设置的方式是我有一个名为MainMapTab的.xaml文件,它基本上只是一个带有画布的DockPanel。在MainMapTab.xaml.cs文件中,我们有以下代码。
public partial class MainMapTab : UserControl
{
public MainMapTab()
{
InitializeComponent();
Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(AddMapKey));
}
[Dependency]
public IUnityContainer UnityContainer { get; set; }
public MainTabPanel MainTabPanel { get; set; }
private void AddMapKey()
{
var myControl = UnityContainer.Resolve<MapKey>();
myControl.MainMapTab = this;
Canvas.SetLeft(myControl, Map.ActualWidth - 525);
Map.Children.Add(myControl);
}
}
在Main Map选项卡的初始加载中,子控件位于完美位置。但是在调整主窗口的大小时,子控件仍处于初始位置,因此会浪费大量空间。我想要做的是将它粘贴在主地图选项卡的右上角,但同时保持主地图选项卡上的画布仍然可以在将来进行编辑。目标是将另一个控件添加到该画布,并允许用户单击并拖动它们。我认为问题在于Canvas.SetLeft方法调用,但我不确定会有什么替代方案。
如何解决这个问题的任何想法将不胜感激。谢谢!
答案 0 :(得分:0)
如何使用Canvas.SetRight
代替Canvas.SetLeft
?
答案 1 :(得分:0)
更改为堆栈面板而不是建议使用的Canvas修复了重新调整大小的问题。单击并拖动此窗口上的UI元素可能仍然存在问题。但是可以使用Stack Panel中的嵌套画布来解决它。