tabcontrol中可调整大小和可移动的用户控件

时间:2014-01-20 20:52:14

标签: c# wpf mvvm

我有一个tabcontrol,由各种大小的各种用户控件动态填充。我想让用户调整大小并移动这些用户控件,如每个tabitem中的普通窗口。这可能吗?怎么做?

2 个答案:

答案 0 :(得分:1)

基本上,您可以在Canvas中添加TabItem控件,并将UserControl添加到Canvas.Children集合中。您可以使用Canvas.LeftCanvas.Top附加属性设置初始位置,并使用TranslateTransform移动它们:

<TabItem>
    <Canvas Name="YourCanvas" />
</TabItem>

...

SomeControl someControl = new SomeControl();
someControl.RenderTransform = new TranslateTransform();
Canvas.SetLeft(someControl, 100);
Canvas.SetTop(someControl, 100);
YourCanvas.Children.Add(someControl);

我不会在这里解释整个的事情,因为它已经写好了。我宁愿指导您阅读denis morozov博客的How to move WPF controls with mouse at runtime页面。

答案 1 :(得分:1)

我建议使用“画布”。画布允许您在另一个控件中使用某种浮动控件。在这种情况下,您将在选项卡项中放置一个画布,然后使用动态用户控件填充画布。有关详细信息,请访问this stackoverflow question.

您可能希望使用adorners,但根据您的说明,它们并不完全符合您的要求(主要是因为它更复杂)。