7

ロードするテキストが多いため、テキストブロック領域をスクロール可能にしたいと考えています。

大きすぎないので、テストできるようにすべてのコードを配置します。

<UserControl x:Class="Fleet_management.Info"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d" Height="492" Width="578">
    <UserControl.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFE2E2E2" Offset="0" />
            <GradientStop Color="White" Offset="1" />
        </LinearGradientBrush>
    </UserControl.Background>

    <UserControl.Resources>
        <XmlDataProvider x:Key="rssData" XPath="//item" Source="*******" />
    </UserControl.Resources>

    <Grid Margin="3" Height="598" Width="565">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="252*" />
            <ColumnDefinition Width="90*" />
            <ColumnDefinition Width="223*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="177*" />
            <RowDefinition Height="55*" />
            <RowDefinition Height="122*" />
            <RowDefinition Height="177*" />
        </Grid.RowDefinitions>

        <ListBox x:Name="lstItems" Margin="3,0" ItemsSource="{Binding Source={StaticResource rssData}}"
                 SelectedIndex="0" VerticalAlignment="Stretch" FontStretch="Normal" FontSize="14" FontFamily="Lucida Sans Unicode" Grid.ColumnSpan="3">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Image Width="20" Margin="3" Source="{Binding XPath=enclosure/@url}" />
                        <TextBlock Margin="3" VerticalAlignment="Center" Text="{Binding XPath=title}" FontWeight="Bold" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <StackPanel Grid.Row="1" Orientation="Vertical" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,0,5" Grid.ColumnSpan="3">
            <TextBlock Margin="3" FontSize="13" FontWeight="Bold" Text="{Binding XPath=title, Path=InnerText}" />
            <TextBlock Margin="3" Opacity="0.72" Text="{Binding XPath=pubDate}" />
        </StackPanel>
        <ScrollViewer Grid.Row="2" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,3,115" Grid.RowSpan="2" Grid.ColumnSpan="3">
            <TextBlock ScrollViewer.CanContentScroll="True" Margin="3"
                       FontStyle="Italic" Text="{Binding XPath=description, Path=InnerText}" TextWrapping="Wrap" TextAlignment="Justify" Width="528" AllowDrop="False"
                       Foreground="#FF0000E7" FontFamily="Lucida Sans Unicode" Height="215" FontSize="14" Padding="0,0,5,0" />
        </ScrollViewer>

    </Grid>
</UserControl>

これは正しく機能していない部分です:

<ScrollViewer Grid.Row="2" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" DataContext="{Binding ElementName=lstItems, Path=SelectedItem}" Margin="0,0,3,115" Grid.RowSpan="2" Grid.ColumnSpan="3">
            <TextBlock ScrollViewer.CanContentScroll="True" Margin="3"
                       FontStyle="Italic" Text="{Binding XPath=description, Path=InnerText}" TextWrapping="Wrap" TextAlignment="Justify" Width="528" AllowDrop="False"
                       Foreground="#FF0000E7" FontFamily="Lucida Sans Unicode" Height="215" FontSize="14" Padding="0,0,5,0" />
        </ScrollViewer>

コードはテキストを読み込んでいますが、すべてではありません。スクロールする必要があります

4

4 に答える 4

9

WidthとをinHeightから削除するだけで機能するはずです。ちなみに、必要ありません。TextBlockScrollviewerScrollViewer.CanContentScroll="True"

于 2012-05-25T16:07:47.823 に答える
0

これらのプロパティを ScrollViewer タグに追加します。TextBlock のコンテンツをスクロールできます。

CanContentScroll="True"

于 2012-05-25T08:36:09.383 に答える
0

これが変更された xaml コードです。そして、その正常に動作します。

データに従ってバインディングを変更しました。データメンバーで変更する必要があります。

<Grid Margin="3">

        <Grid.RowDefinitions>
            <RowDefinition Height="177*" />
            <RowDefinition Height="100*" />
            <RowDefinition Height="122*" />
            <RowDefinition Height="177*" />
        </Grid.RowDefinitions>

        <ListBox x:Name="lstItems"
                 Grid.ColumnSpan="3"
                 Margin="3,0"
                 VerticalAlignment="Stretch"
                 FontFamily="Lucida Sans Unicode"
                 FontSize="14"
                 FontStretch="Normal"
                 SelectedIndex="0">
            <ListBox.Background>
                <ImageBrush />
            </ListBox.Background>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Width="100"
                                   Margin="3"
                                   Text="{Binding Name}" />
                        <TextBlock Margin="3"
                                   VerticalAlignment="Center"
                                   FontWeight="Bold"
                                   Text="{Binding InceptionDate}" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <StackPanel Grid.Row="1"
                    Margin="5"
                    DataContext="{Binding ElementName=lstItems,
                                          Path=SelectedItem}"
                    Orientation="Vertical">
            <TextBlock Margin="3"
                       FontSize="13"
                       FontWeight="Bold"
                       Foreground="Red"
                       MaxHeight="50"
                       Text="{Binding FundSummary}"
                       TextWrapping="Wrap" />
            <TextBlock Margin="3"
                       Foreground="Blue"
                       Opacity="0.72"
                       ScrollViewer.CanContentScroll="True"
                       ScrollViewer.VerticalScrollBarVisibility="Auto"
                       Text="{Binding ManagerBio}"
                       TextWrapping="WrapWithOverflow" />
        </StackPanel>
        <ScrollViewer Grid.Row="2"
                      Grid.RowSpan="2"
                      Grid.ColumnSpan="3"
                      Margin="10"
                      DataContext="{Binding ElementName=lstItems,
                                            Path=SelectedItem}"
                      HorizontalScrollBarVisibility="Disabled"
                      VerticalScrollBarVisibility="Auto">

            <TextBlock Height="Auto"
                       Margin="3"
                       AllowDrop="False"
                       Background="Silver"
                       FontFamily="Lucida Sans Unicode"
                       FontSize="14"
                       FontStyle="Italic"
                       Foreground="YellowGreen"
                       Padding="0,0,5,0"
                       ScrollViewer.CanContentScroll="True"
                       Text="{Binding ManagerBio}"
                       TextAlignment="Justify"
                       TextWrapping="Wrap" />

        </ScrollViewer>
    </Grid>
于 2012-05-25T12:35:25.643 に答える