Растягивание и выравнивание кнопок UWP по левому краю

#xaml

#xaml

Вопрос:

Привет, как сделать эту кнопку:

                         <Button x:Name="StartButton" Background="Transparent" Click="StartButton_Click">
                        <Button.Content>
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
                                <TextBlock FontSize="18" FontFamily="Segoe MDL2 Assets" Text="amp;#xE768; " VerticalAlignment="Center"/>
                                <TextBlock FontSize="18" Text="Start"/>
                            </StackPanel>
                        </Button.Content>
                    </Button>
  

чтобы заполнить его родительский элемент (по горизонтали) и выровнять его содержимое по левому краю?

Комментарии:

1. Можете ли вы предоставить более полный пример? Трудно диагностировать проблему только с Button помощью кода.

Ответ №1:

Это ответ:

 <Button x:Name="StartButton" Background="Transparent" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left">
    <TextBlock FontSize="18">
        <Run FontFamily="Segoe MDL2 Assets" Text="amp;#xE768; "/>
        <Run Text="Start"/>
    </TextBlock>
</Button>
  

Ответ №2:

Для получения ожидаемого результата я рекомендую использовать <Run> для определения строк вашего TextBlock

Это должно выглядеть так :

 <Button x:Name="StartButton" Background="Transparent" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Click="StartButton_Click">
    <TextBlock FontSize="18" HorizontalAlignment="Left">
        <Run FontFamily="Segoe MDL2 Assets" Text="amp;#xE768; "/>
        <Run Text="Start"/>
    </TextBlock>
</Button>
  

Комментарии:

1. К сожалению, кнопка не заполняет своего родителя. Хотя он выровнен по левому краю.

2. Возможно, я забыл Button собственное выравнивание. Отредактированный код

3. Я опубликовал правильный ответ. Должно быть HorizontalContentAlignment=»Left», и нет необходимости устанавливать HorizontalAlignment для текстового блока. Тем не менее, большое вам спасибо, поскольку вы показали мне путь.