Якорь WPF управления вправо - PullRequest
1 голос
/ 11 апреля 2011

Это должно быть довольно просто, но мой поиск сильно мешает людям, пытающимся растянуть элемент управления (используя Anchor.Left | Anchor.Right ранее в Winforms).

Это не связано, я просто хочу привязать элемент управления вправо.

У меня есть следующее:

|--------|
|        |
|  Foobar|
|--------|

Я могу сделать это с помощью HorizontalAlignment, сеткиили ряд других способов.Но он ломается, если я изменяю размер элемента управления.

Я хочу:

|----|
|    |
|obar|
|----|

(то есть - привязка справа. Не трогайте это расстояние до края. Переместите влевосторона вне поля зрения)

Вместо этого я получаю это:

|----|
|    |
|Foob|
|----|

(левая сторона моего контента не будет перемещаться из поля зрения).

ЯКонечно, есть простое решение, но пока я не могу убедить WPF, что он должен повредить / отрезать левую сторону моих элементов управления, несмотря ни на что.


Хорошо, я обманывал и сделал этослишком просто, я думаю.То, что у меня действительно есть, это список прямоугольников (здесь представлен X):

|---------|
|     XXXX|
|---------|

Это ItemsControl со StackPanel внутри, содержащий (более или менее только) прямоугольники.Ожидание остается прежним, хотя: закрепите все это направо, повредите / прокрутите левую сторону только при изменении размера.

Ответы [ 3 ]

1 голос
/ 11 апреля 2011

Может быть, я слишком много здесь делаю, но я знаю, что это работает:

  <DockPanel>  
    <Canvas DockPanel.Dock="Right">
      <TextBlock Canvas.Right="0">FooBar</TextBlock>
    </Canvas>
    <Grid></Grid>
  </DockPanel>

Без холста он будет делать, как вы говорите, т.е. отрезать правую сторону.

Вы также должны установить Canvas.Right. Таким образом, холст получает ширину текстового блока, но обрезается слева.

EDIT:

это также работает и, вероятно, проще

  <DockPanel>  
    <TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right">FooBar</TextBlock>        
    <Grid></Grid>
  </DockPanel>
1 голос
/ 11 апреля 2011

HorizontalAlignment = "Право", безусловно, путь, и он даже работает, если вы измените размер элемента управления.

Попробуйте это:

<TextBlock Text="FooBarrrrrrrrrrrrrrrrrrrrttttttttttttttt"
            HorizontalAlignment="Right" />
0 голосов
/ 11 апреля 2011

Попробуйте вставить свой элемент управления в DockPanel и установите присоединенное свойство DockPanel.Dock = "Right" на вашем элементе управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...