1

問題が解決しました!とにかく、私は問題を理解しました。値に対して .Trim() を実行しましたが、驚くべきことにそれらをラップできます。ご迷惑をおかけして申し訳ありません。=)

グリッド内のテキストブロックにデータ バインディングを行っています。

ただし、一部のテキストは完全には表示されません。 エラー

テキストの折り返しを試し、テキストブロックに最大幅を設定しました。しかし、どれも機能しませんでした。

編集:こんにちは。次のようなコードを介してテキストブロックのテキストを手動で変更したときに気づきました

 txtDesc.Text = "This is a job for Stackers. If you like stacking, please contact me. 

テキストの折り返しは実際に機能します。どういうわけか、データバインドの結果テキストをラップできないのでしょうか?

テキストブロックの XAML コード。

 <TextBlock Name="Description"  Grid.Row="4" Text="{Binding Description}" FontSize="     {StaticResource PhoneFontSizeSmall}" Height="auto" Width="220" Margin="0,0,0,0" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" MaxWidth="220"></TextBlock>

ここで何か助けはありますか?

<!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot">
        <Grid.Background>
            <ImageBrush Stretch="Fill" ImageSource="images/SmallLogoNTitle.png"/>
        </Grid.Background>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <toolkit:ListPicker ItemsSource="{Binding}" Name="lpkTypeOfService" Margin="0,116,12,0" Height="65" VerticalAlignment="Top" HorizontalAlignment="Right" Width="210" SelectionChanged="lpkTypeOfService_SelectionChanged">

            </toolkit:ListPicker>
            <ListBox Margin="8,210,8,26" Name="listBox1" Width="450">
            <ListBox.ItemTemplate>
                    <DataTemplate>

                        <Grid ShowGridLines="True">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="50"/>
                                <RowDefinition Height="50"/>
                                <RowDefinition Height="30"/>
                                <RowDefinition Height="30"/>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="60"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="300"/>
                                <ColumnDefinition Width="150"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock HorizontalAlignment="Left" Grid.Row="0" Grid.Column="0" Name="Date" Text="{Binding Date}" FontSize="{StaticResource PhoneFontSizeLarge}"></TextBlock>
                            <TextBlock HorizontalAlignment= "Left" Grid.Row="1" Grid.Column="0" Name="Creator" Text="{Binding CreatorID}" FontSize="{StaticResource PhoneFontSizeLarge}"></TextBlock>
                            <TextBlock Name="Type" Grid.Row="2" Text="{Binding Type}" FontSize="{StaticResource PhoneFontSizeSmall}"></TextBlock>
                            <TextBlock Name="Amount" Grid.Row="3" Text="{Binding Amount}" FontSize="{StaticResource PhoneFontSizeSmall}"></TextBlock>
                            <TextBlock Name="Description"  Grid.Row="4" Text="{Binding Description}" FontSize="{StaticResource PhoneFontSizeSmall}" Height="auto" Width="220" Margin="0,0,0,0" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" MaxWidth="220"></TextBlock>
                            <Button Content="Apply" Height="70" Width="140" Name="btn1" Click="btn_Click" Grid.Row="5" Grid.Column="1"></Button>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
                </ListBox>
            <TextBlock Height="65" HorizontalAlignment="Left" Margin="12,116,0,0" Name="textBlock1" Text="Find Service :" VerticalAlignment="Top" Width="216" FontSize="36" />
        </Grid>
    </Grid>
4

3 に答える 3

1

これは、貧弱で複雑すぎるレイアウト アーキテクチャと、オブジェクトが互いに配置されている方法に起因します。あなたのためにこのようなことを試すかもしれませんDataTemplate

    <DataTemplate>

       <Grid ShowGridLines="True">
          <Grid.RowDefinitions>
             <RowDefinition Height="50"/>
             <RowDefinition Height="50"/>
             <RowDefinition Height="30"/>
             <RowDefinition Height="30"/>
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="60"/>
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
<!-- Don't worry, you already had your 450 Width set on the parent -->
             <ColumnDefinition Width="*"/>
             <ColumnDefinition Width="Auto"/>
          </Grid.ColumnDefinitions>

             <TextBlock Name="Date" Text="{Binding Date}" FontSize="{StaticResource PhoneFontSizeLarge}"/>
             <TextBlock Name="Creator" Grid.Row="1" Text="{Binding CreatorID}" FontSize="{StaticResource PhoneFontSizeLarge}"/>
             <TextBlock Name="Type" Grid.Row="2" Text="{Binding Type}" FontSize="{StaticResource PhoneFontSizeSmall}"/>
             <TextBlock Name="Amount" Grid.Row="3" Text="{Binding Amount}" FontSize="{StaticResource PhoneFontSizeSmall}"/>
             <TextBlock Name="Description" Grid.Row="4" Text="{Binding Description}" FontSize="{StaticResource PhoneFontSizeSmall}" TextWrapping="Wrap"/>
             <Button Name="btn1" Click="btn_Click" Grid.Row="5" Grid.Column="1" Content="Apply" Height="70" Width="140" Margin="5,0"/>

          </Grid>

    </DataTemplate>

また、xaml をよりクリーンにするためにMargin="0"Grid.Column="0"HorizontalAlignment="Left"などはデフォルトの依存関係プロパティであるため、個々のオブジェクトごとに設定する必要はありません。必要な場合でも、それらをSettersとしてTargetType親に適用しObject.Resources、個々のオブジェクトに設定することを避けることができます。別のヒントは、難読化されたランダムマージンなどに頼ってレイアウトを作成しないことです。相互に依存する小さな「修正」の束の間の不一致を探すのではなく、最初から正しく行うのが最善です

私はそれをテストしませんでしたが、何か他のものをどこかにプッシュしない限り、うまく動作するはずです。お役に立てれば。

于 2013-04-15T15:50:54.070 に答える