Windowsphone文本块限制

本文关键字:文本 Windowsphone | 更新日期: 2023-09-27 18:24:30

我已经在Listbox ItemTemplate/data模板中实现了textblock。它被数据绑定到从xml文件读取的"Data"。一切都很好,但是,文本在文本块中被修剪,出现了空白。我知道原因,这是由于文本块的限制。现在我尝试使用Alex Yakhnin博客中的WP7的Scrollable TextBlock,但我不明白如何在我的项目中实现它?

C#代码:

string XMLTagNameBody = "page";
private void ParseHeaderBody() 
{
    XDocument SunderGutkaXMLInstance = XDocument.Load(xmlFileToOpen);
    var XMLBody = from query in SunderGutkaXMLInstance.Descendants(XMLTagNameBody)
                  select new BodyContentClass
                  {
                       Data = (string)query.Element("data"),
                  };
    ListBoxDisplayContent.ItemsSource = XMLBody;
}
public class BodyContentClass
{
    string book;
    string data;
    public string Book
    {
        get { return book; }
        set { book = value; }
    }
    public string Data
    {
         get { return data; }
         set { data = value; }
    }
}

XAML代码:

<ListBox Margin="0,25,0,32" 
         x:Name="ListBoxDisplayContent"
         FontSize="48"
         HorizontalAlignment="Center">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel x:Name="ListBoxDisplayContentStackPanel"
                        Margin="10"
                        HorizontalAlignment="Center">
                <TextBlock x:Name="MainContentDisplayTextBlock"
                           TextWrapping="Wrap"
                           Text="{Binding Data}"
                           TextAlignment="Center"
                           HorizontalAlignment="Center" />
                <Image x:Name="dividerImage"
                       Stretch="Fill"
                       Source="/Assets/MainContentDivider.png"
                       Opacity="1"></Image>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Alex Yakhnin的博客链接/WP7的可滚动文本块:

  • http://social.msdn.microsoft.com/Forums/windowsapps/en-US/3af9bc99-2526-49fc-b4a5-4170e12d11ab/do-textblocks-have-a-max-line-limit-if-so-how-do-i-increase-it?forum=wpdevelop
  • http://blogs.msdn.com/b/priozersk/archive/2010/09/08/creating-scrollable-textblock-for-wp7.aspx

Windowsphone文本块限制

您可以创建一个自定义控件,然后将其添加到您的项目中,如:

<StackPanel x:Name="ListBoxDisplayContentStackPanel" Margin="10"
                        HorizontalAlignment="Center">
        <my:ScrollableTextBlock  Text="{Binding Data}"
           HorizontalAlignment="Left"  Name="scrollableTextBlock1"
             VerticalAlignment="Top" Height="618" Width="427" Margin="12,-11,0,0" />
        <TextBlock x:Name="MainContentDisplayTextBlock"
                       TextWrapping="Wrap"
                       TextAlignment="Center"
                       HorizontalAlignment="Center" />
        <Image x:Name="dividerImage"
                       Stretch="Fill"
                       Source="/Assets/MainContentDivider.png"
                       Opacity="1"></Image>
    </StackPanel>

其中my是控件的命名空间。