WrapPanel с 2 элементами WPF

Я хочу показать большой текст рядом с изображением в окне с изменяемым размером.

Я нашел здесь, что можно использовать WrapPanel, но для этого элемента управления требуется фиксированная ширина и ширина моего окна не фиксированная.

Я пробовал следующий код, но иногда текст помещается под изображением (в зависимости от размера окна):

<Border Grid.Row="0" BorderBrush="Black" BorderThickness="1" CornerRadius="1" Background="PaleGoldenrod" Grid.Column="0" Margin="5">
    <StackPanel Orientation="Vertical" Opacity="0.8" >
        <WrapPanel Orientation="Horizontal" Width="{Binding ElementName=RadGridViewFoldersSettingsRSP, Path=Width}">
            <Image Source="/Pics/Resources/btn_about_active.png" Margin="2" Width="20"/>
            <TextBlock Text="blablabla" TextWrapping="WrapWithOverflow" Margin="2" FontStyle="Italic"/>
         </WrapPanel>
     </StackPanel>
 </Border>

Эта граница находится над сеткой шириной в окно.

Вы можете мне помочь ?


person Community    schedule 19.12.2017    source источник
comment
Почему вы вообще используете WrapPanel? Если вы всегда хотите, чтобы текстовый блок рядом с изображением, вы должны использовать StackPanel.   -  person mm8    schedule 19.12.2017
comment
StackPanel не оборачивается, и когда текст равен ширине окна, часть этого текста скрывается.   -  person    schedule 19.12.2017
comment
Я хочу обернуть текст в зависимости от размера окна. Я нашел решение, когда попытался ответить вам. Я собираюсь опубликовать здесь прямо сейчас!   -  person    schedule 19.12.2017


Ответы (1)


Чтобы решить свою проблему, я пойду другим путем:

<Border Grid.Row="0" BorderBrush="Black" BorderThickness="1" CornerRadius="1" Background="PaleGoldenrod" Grid.Column="0" Margin="5">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <Image Source="/Pics/Resources/btn_about_active.png" Margin="2" Width="20" Grid.Column="0"/>
        <TextBlock Grid.Column="1" Text="BIG TEXT" TextWrapping="WrapWithOverflow" Margin="2" FontStyle="Italic"/>
    </Grid>
</Border>

Спасибо mm8 за реактивность!

person Community    schedule 19.12.2017