【发布时间】:2009-12-09 22:14:19
【问题描述】:
prism 文档指出有三个可用的区域适配器:
ContentControlRegionAdapter。此适配器适应
System.Windows.Controls.ContentControl类型的控件和派生类。SelectorRegionAdapter。此适配器适应从类
System.Windows.Controls.Primitives.Selector派生的控件,例如System.Windows.Controls.TabControl控件。ItemsControlRegionAdapter。此适配器适应
System.Windows.Controls.ItemsControl类型的控件和派生类。
不幸的是,Panel 不属于这些类别中的任何一个,我希望能够在我的.xaml.cs 中写下这个:
<Canvas cal:RegionManager.RegionName="{x:Static local:RegionNames.MainCanvas}">
我们怎样才能做到这一点?
【问题讨论】:
-
这里的问题是画布没有强加任何布局。除非您使您的 regionadapter 更智能地放置在该区域注册的元素(这也是不支持 Panel 的原因),否则您将遇到问题。我很好奇......你有什么应用程序?
-
我正在更新一个现有的代码库,该代码库具有预期位于 Canvas 内的浮动控件容器(如工具栏)。他们处理自己的“标题栏”区域并在拖动时更新其画布位置。显然,这可以通过其他方式实现,但与往常一样,时间至关重要,这似乎是我可以将现有结构转换为与 Prism 一起使用的最快方式。
-
让控件更新其位置似乎有点不合逻辑......有点“走出你的盒子”。 +1 能够转换现有的代码库。
-
我完全同意。如果有时间,它们可能应该移到 Windows(甚至可能是 Popups)。我只是看不到现在可用的时间 :)