Как создать этот интерфейс в Windows Phone, чтобы показать изображение и текст в непрерывной переносе текста? - PullRequest
0 голосов
/ 09 марта 2012

Как создать подобный интерфейс в Windows Phone, что можно сделать с помощью flowdocument в WPF? Есть ли в Windows Phone какое-либо управление потоком документов и есть ли другой способ?

enter image description here

1 Ответ

0 голосов
/ 09 марта 2012

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

<Grid Width="400">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Image x:Name="WrapContent" Width="200" Height="192" />
    <TextBlock x:Name="RightTextBlock" Width="200" FontSize="24" FontFamily="Segoe WP" TextWrapping="Wrap" Grid.Column="1" />
    <TextBlock x:Name="BottomTextBlock" Width="400" FontSize="24" FontFamily="Segoe WP" TextWrapping="Wrap" Grid.Row="1" Grid.ColumnSpan="2" />
</Grid>

public MainPage()
{
    InitializeComponent();

    string text = "Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit. Lorem ipsum dolor sit amet consectetur adipiscing elit.";
    string[] words = text.Split(' ');
    RightTextBlock.Text = words[0];

    for (int i = 0; i < words.Length; i++)
    {
        string word = words[i];
        string previousText = RightTextBlock.Text;
        RightTextBlock.Text += " " + word;
        if (RightTextBlock.ActualHeight > WrapContent.ActualHeight)
        {
            RightTextBlock.Text = previousText;
            BottomTextBlock.Text += String.Join(" ", words.Skip(i));
            break;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...