silverlight - 如何让 TextBlock 在 DockPanel 区域内包装文本?

标签 silverlight textblock word-wrap dockpanel

我该怎么做才能让下面的内部 TextBlock 在不定义绝对宽度的情况下包装其文本?

我试过 Width=Auto、Stretch、TextWrapping,把它放在 StackPanel 中,似乎没有任何效果。

alt text
(来源:deviantsart.com)

XAML:

<UserControl x:Class="Test5.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:tk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit"
    Width="800"
    Height="600">
    <tk:DockPanel LastChildFill="True">

        <StackPanel tk:DockPanel.Dock="Top"
            Width="Auto"
            Height="50"
            Background="#eee">
            <TextBlock Text="{Binding TopContent}"/>
        </StackPanel>

        <StackPanel tk:DockPanel.Dock="Bottom" Background="#bbb"
            Width="Auto"
            Height="50">
            <TextBlock Text="bottom area"/>
        </StackPanel>

        <StackPanel tk:DockPanel.Dock="Right" Background="#ccc"
            Width="200"
            Height="Auto">
            <TextBlock Text="info panel"/>
        </StackPanel>

        <StackPanel tk:DockPanel.Dock="Left" Background="#ddd"
            Width="Auto"
            Height="Auto">
            <ScrollViewer HorizontalScrollBarVisibility="Auto" Padding="10"
            BorderThickness="0"
                Width="Auto"
                VerticalScrollBarVisibility="Auto">
                <tk:DockPanel HorizontalAlignment="Left" Width="Auto" >
                    <StackPanel tk:DockPanel.Dock="Top" HorizontalAlignment="Left">
                        <Button Content="Add More" Click="Button_Click"/> 
                    </StackPanel>
                    <TextBlock tk:DockPanel.Dock="Top" 
                        Text="{Binding MainContent}" 
                        Width="Auto" 
                        TextWrapping="Wrap" />
                </tk:DockPanel>
            </ScrollViewer>
        </StackPanel>

    </tk:DockPanel>
</UserControl>

最佳答案

您是否尝试过更改滚动条的可见性?

<ScrollViewer HorizontalScrollBarVisibility="Disabled" Padding="10"
            BorderThickness="0"
                Width="Auto"
                VerticalScrollBarVisibility="Auto">

关于silverlight - 如何让 TextBlock 在 DockPanel 区域内包装文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552376/

相关文章:

c# - Silverlight 更新绑定(bind)

wpf - 显示非矩形文本 block

java - 即使我已采取措施防止这种情况发生,Eclipse 仍会自动换行

c# - 在文本框中打断单词(使用 TextWrapping=Wrap)

css - 避免在::before 伪元素和下一个单词之间换行

silverlight - WCF 和 Silverlight 4 的另一个 "The maximum string content length quota (8192) has been exceeded while reading XML data."问题

flash - 在网页上播放多播视频的选项

silverlight - 在 Windows Phone 7 中恢复列表框的精确滚动位置

c# - WPF XAML TextBlock 将内容发送到新行

wpf - 使用单一样式同时设置 Hyperlink 和 TextBlock 的样式?