如何在wpf表单上动态移动选项卡控件

时间:2010-07-02 19:04:49

标签: c# wpf visual-studio-2008

我正在尝试动态地移动wpf上的选项卡控件。选项卡控件连接到计时器,基本上如果按下按钮,尺寸缩小,使其外观和行为类似于可扩展面板。但是,当我'收缩'选项卡控件时,宽度会集中调整,而我希望控件保持在X轴的位置,我该怎么做(为什么他们不能做control.location(x, y)我不知道!)?

GeneralTransform myTrans = this.tabcontrol1.TransformToAncestor(this);
Point p1 = myTrans.Transform(new Point(0, 0));

我使用上面的两行来获取位置,这可以通过GeneralTransform或visualTreeHelper(返回一个向量)来完成,如何将它应用于tabcontrol以使其移动?

谢谢,R。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Canvas作为容器来保存TabControl? Canvas仅支持绝对定位,因此您可以使用Canvas.TopCanvas.Left来定位它。如果需要拉伸控件以填充区域,则可以绑定到Canvas容器的ActualWidth / ActualHeight。

以下是XAML的示例。

        <Canvas x:Name="tabCanvas" Grid.Row="1">
        <TabControl x:Name="tabControl" Canvas.Left="0" Canvas.Top="0"
                    Width="{Binding ElementName=tabCanvas, Path=ActualWidth}"
                    Height="{Binding ElementName=tabCanvas, Path=ActualHeight}">
            <TabItem Header="Item 1" />
            <TabItem Header="Item 2" />
        </TabControl>
    </Canvas>