WPF新手所以请保持温和。
希望在C#/ WPF中重写现有的VFP应用程序
所有表单都有容器,而容器又包含文本框,标签等等。
使用此配置允许用户使用鼠标移动容器和包含的控件,在容器内设置焦点以启用和缩小表单等。
因此,不是直接向WPF表单添加控件,而是需要先添加一个可移动容器,然后将控件添加到容器中。
那么从哪里开始?
答案 0 :(得分:0)
您可以尝试AvalonDock库,看它是否能满足您的要求。
答案 1 :(得分:0)
听起来您正在寻找的主要内容之一是为标准WPF面板/容器添加拖放功能。正如Mash所说,AvalonDock对您有用,特别是如果您有兴趣将面板对接到某些位置。但我还建议你看一下将标签添加到标准WPF面板的选项。这将是一个更轻量级的选项,可以让您快速入门,而不必担心AvalonDock的限制。
当然有许多方法可以实现拖放,但我认为非常方便的功能是适合这项任务的附加“行为”的概念。附加行为基本上允许您“添加”现有WPF控件的功能,而无需更改或扩展实际控件。附加行为有两种基本类型。一个使用WPF附加属性,另一个使用通常称为“混合”行为。如果您只是想开始使用行为来解决您的问题,那么您不一定需要了解这两种方法的所有细微差别,但最终您可能会发现这两种方法都有它们的位置,所以我'建议阅读关于他们的this post。
特别是,有一个名为MouseDragElementBehavior的Blend行为允许您向WPF面板添加拖放功能(这里的“e”和“d”是xmlns名称空间前缀):
<Border Background="LightBlue" >
<e:Interaction.Behaviors>
<b:DragBehavior/>
</e:Interaction.Behaviors>
<TextBlock Text="Drag me around!" />
</Border>
与此类似,您提到了可缩放性,并且another Blend behavior也可能对您有用。
如果您使用Expression Blend,混合行为很容易添加元素,但您也可以在Visual Studio中使用它们。要解释如何执行此操作,请参阅Laurent关于他的magnify behavior。
的帖子