Как динамически переместить элемент управления вкладкой в ​​форму wpf - PullRequest
0 голосов
/ 02 июля 2010

Я пытаюсь динамически перемещать элемент управления вкладками на wpf. Элемент управления вкладки привязан к таймеру, и в основном, если вы нажимаете кнопку, размер уменьшается, поэтому он выглядит и ведет себя как расширяемая панель. Однако, когда я «сжимаю» элемент управления вкладкой, ширина регулируется централизованно, тогда как я хочу, чтобы элемент управления оставался там, где он был расположен на оси X, как мне это сделать (почему они не могли сделать control.location (x, у) я не знаю!)?

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

Я использую две строки выше, чтобы получить позицию, это можно сделать с помощью GeneralTransform или visualTreeHelper (который возвращает вектор), и как мне применить это к tabcontrol, чтобы заставить его двигаться?

Спасибо, Р.

1 Ответ

0 голосов
/ 03 июля 2010

Вы пытались использовать Canvas в качестве контейнера для хранения TabControl? Canvas поддерживает только абсолютное позиционирование, поэтому вы можете позиционировать его, используя Canvas.Top и Canvas.Left. Если вам нужно растянуть элемент управления, чтобы заполнить область, вы можете привязать к ActualWidth / ActualHeight контейнера Canvas.

Вот пример того, как может выглядеть 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...