WPF: HorizontalAlignment = Stretch, MaxWidth и Right выровнены одновременно?

Более или менее тот же вопрос, что и здесь, но с выравниванием по правому краю: HorizontalAlignment = Stretch, MaxWidth и Выровнены по левому краю одновременно?

Как сделать так, чтобы это синее текстовое поле увеличивалось с размером окна, имело максимальную ширину 200 пикселей и было выровнено по правому краю?

Это то, что у меня есть, но оно выровнено по центру, а не по правому краю. Почему?

   <DockPanel Background="LightSteelBlue">
        <TextBox Margin="3 3 3 3" DockPanel.Dock="Right" MaxWidth="200" />
    </DockPanel>

person TWT    schedule 21.08.2012    source источник
comment
почему бы вам не использовать результат отправленного вами ответа и заменить слева направо ...   -  person Florian    schedule 22.08.2012
comment
Используйте Snoop, чтобы увидеть, действительно ли текстовое поле размещено неправильно, или, возможно, панели и элементы управления над ним.   -  person dowhilefor    schedule 22.08.2012
comment
Почему проголосовали против? Я попробовал ответы на связанный вопрос, но он не работает так, как ожидалось. Поскольку я использую маржу, я не могу просто привязать к фактической ширине контейнера. Контейнер всегда на 6 пикселей шире, чем сам текстовый ящик.   -  person TWT    schedule 22.08.2012


Ответы (1)


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

<Grid Background="LightSteelBlue">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="1000*" MaxWidth="200"/>
        </Grid.ColumnDefinitions>

        <TextBox Margin="3 3 3 3" Grid.Column="1"  />
    </Grid>
person TWT    schedule 22.08.2012