Неправильное выравнивание изображения и метки кнопки C# / WPF / XAML - PullRequest
0 голосов
/ 24 февраля 2020

Мне нужно фоновое изображение с левой стороны кнопки и текст, наложенный на изображение посередине, но я получаю: enter image description here

что я хочу: enter image description here

изображение в формате PNG: enter image description here с прозрачностью

Хорошо, я нашел решение:

<Button x:Name="btnCustomer"
        Click="btnCustomer_Click">
    <Button.Content>
        <Grid>
            <Image Width="{Binding ActualWidth, ElementName=btnCustomer}" HorizontalAlignment="Left"
                   Source="Images\Customer.png"
                   Stretch="Uniform" />
            <TextBlock VerticalAlignment="Center"><Bold>Our Customer</Bold></TextBlock>
        </Grid>
    </Button.Content>
</Button>

Его выходное изображение: enter image description here

Ответы [ 3 ]

1 голос
/ 24 февраля 2020

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

<Button>
    <Button.Content>
        <Grid>
            <Image Source="Images/Customer.png" MaxHeight="20"
                HorizontalAlignment="Left" VerticalAlignment="Center"/>
            <TextBlock Text="Customer" FontWeight="Bold" Margin="20,0"
                HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>
    </Button.Content>
</Button>
0 голосов
/ 24 февраля 2020
<Button x:Name="btnCustomer"
        Click="btnCustomer_Click">
    <Button.Content>
        <Grid>
            <Image Width="{Binding ActualWidth, ElementName=btnCustomer}" HorizontalAlignment="Left"
                   Source="Images\Customer.png"
                   Stretch="Uniform" />
            <TextBlock VerticalAlignment="Center"><Bold>Our Customer</Bold></TextBlock>
        </Grid>
    </Button.Content>
</Button>
0 голосов
/ 24 февраля 2020

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

<Button x:Name="btnCustomer">
    <Button.Content>
        <Grid VerticalAlignment="Center">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Image
                Grid.Column="0"
                Source="Images\Customer.png"
                Stretch="Uniform" />
            <TextBlock Margin="6, 0"
                Grid.Column="1"  
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
                Text="Customer" />
        </Grid>
    </Button.Content>
</Button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...