我有一个tabcontrol,由各种大小的各种用户控件动态填充。我想让用户调整大小并移动这些用户控件,如每个tabitem中的普通窗口。这可能吗?怎么做?
答案 0 :(得分:1)
基本上,您可以在Canvas
中添加TabItem
控件,并将UserControl
添加到Canvas.Children
集合中。您可以使用Canvas.Left
和Canvas.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,但根据您的说明,它们并不完全符合您的要求(主要是因为它更复杂)。