Silverlight обрезает текст / упаковывает его и отображает неправильно - PullRequest
1 голос
/ 18 апреля 2009

Пожалуйста, помогите мне понять проблему, стоящую за этим, и это исправлено, у меня много проблем с получением нужного поведения при отображении текста.

При определенной длине строк TextBlock оборачивается, но не обновляет элемент управления, чтобы показать вторую строку, в результате чего часть текста исчезает.

Это прекрасно работает в XamlPad, но не в Silverlight 3 и Expression blend 3

<Grid x:Name="LayoutRoot" Background="{x:Null}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
<Border CornerRadius="20,20,20,20" Grid.ColumnSpan="2" Grid.RowSpan="2" BorderBrush="#FF000000" BorderThickness="1,1,1,1">
    <Border.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF2100FF"/>
            <GradientStop Color="#FFFFFFFF" Offset="1"/>
        </LinearGradientBrush>
    </Border.Background>
</Border>

<TextBlock x:Name="eventName" Grid.Column="1" Text="Amazing Music" FontSize="24" Margin="5,5,10,5" HorizontalAlignment="Left" VerticalAlignment="Top" Padding="0,0,0,0"/>
<TextBlock x:Name="eventDescription" Grid.Column="1" Grid.Row="1" Text="Amazin music in that house" TextWrapping="Wrap" FontSize="14" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top" MaxWidth="300" />
</Grid>

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Я думаю, что Браулио на что-то. Я смог заставить его правильно обернуть и изменить размер, поместив текст в стековую рамку в рамку. Перетащите этот XAML на новый пользовательский элемент управления, для которого не заданы ширина и высота.

<Border CornerRadius="20,20,20,20" BorderBrush="#FF000000" BorderThickness="1,1,1,1" 
    Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="192"
    Padding="5">
    <Border.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF2100FF"/>
            <GradientStop Color="#FFFFFFFF" Offset="1"/>
        </LinearGradientBrush>
    </Border.Background>
    <StackPanel>
        <TextBlock x:Name="eventName" Text="Amazing Music" FontSize="24" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="0,0,0,0"/>
        <TextBlock x:Name="eventDescription" Text="Amazin music in that house" TextWrapping="Wrap" FontSize="14" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MaxWidth="300" />
    </StackPanel>
</Border>
0 голосов
/ 20 апреля 2009

Ммм .... может быть, он может быть в Grid, попробуйте сделать это на фиктивной панели стека, просто чтобы проверить, нужно ли вам играть с авто или * ...

С другой стороны, если вам нужно показать TextBlock внутри фиксированной области,

http://www.tipsdotnet.com/TechBlog.aspx?PageIndex=0&BLID=7

Приветствие Braulio

...