WPF - Центр управления (метка) в Canvas - PullRequest
9 голосов
/ 16 декабря 2010

Привет

Я пытаюсь исправить расположение элементов управления в моем приложении WPF. В моем приложении у меня есть несколько ярлыков, каждый из которых находится в отдельном холсте. Я пытаюсь центрировать этикетку на холсте. В настоящее время у меня есть код для одной метки:

<Canvas Height="42" HorizontalAlignment="Left" Margin="0,1,0,0" Name="canvasPlayer1" VerticalAlignment="Top" Width="172" >
    <Label Content="" Foreground="White" FontSize="15" FontFamily="Eurostile LT ExtendedTwo" Height="Auto" HorizontalAlignment="Center" Margin="0,5,0,0" Name="labelPlayer1Name" VerticalAlignment="Center" Width="Auto" />
</Canvas>

Теперь для начала проблема заключается в том, что он вообще не центрирует текст, а остается в исходном положении. Я пытаюсь добиться центрирования содержимого метки на этом холсте, НО оно не может превышать ширину холста.

Полезные предложения приветствуются! Если у вас есть какие-либо комментарии относительно моего мышления для решения этой проблемы, пожалуйста, сообщите мне об этом!

Заранее спасибо

1 Ответ

16 голосов
/ 16 декабря 2010

Вы не должны использовать Canvas для этого.Свойства выравнивания и поля не будут влиять на элементы, размещенные на холсте.Вместо этого вы должны использовать Grid.Холст не особенно полезен для большинства сценариев макета.

<Grid Height="42" HorizontalAlignment="Left" Margin="0,1,0,0" 
      Name="canvasPlayer1" VerticalAlignment="Top" Width="172" >
    <Label Content="" Foreground="White" FontSize="15" 
           FontFamily="Eurostile LT ExtendedTwo" 
           HorizontalAlignment="Center" Margin="0,5,0,0" 
           Name="labelPlayer1Name" VerticalAlignment="Center" />
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...