Windows Phone:文本块中的文本未完全显示

时间:2013-04-15 14:05:49

标签: windows-phone-7 xaml textblock

问题解决了! 无论如何,我只是想出了问题。我对值进行了.Trim(),令人惊讶的是它们可以被包装。感谢和抱歉所有的麻烦。 =)

我正在对网格中的文本块进行一些数据绑定。

然而,有些文本没有完全展示。 Error

我尝试了文本换行并将最大宽度设置为我的文本块。但他们都没有工作。

编辑:你好。我注意到当我通过

等代码手动更改文本块的文本时
 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>

3 个答案:

答案 0 :(得分: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"等内容是默认的依赖项属性,因此无需将它们设置为每个单独的对象。即使在您需要的情况下,您也可以将它们Setter作为父TargetType中的Object.Resources应用,并避免将它们设置为每个单独的对象。另一个提示是,不要依赖一堆混淆的随机边距等来创建你的布局。最好是在第一次就做好,而不是寻找一堆相互依赖的小“修复”之间的差异

我没有测试它,但应该可以正常工作,除非你在其他地方推送其他东西。希望这会有所帮助。

答案 1 :(得分:0)

您可以在列表框控件中禁用水平滚动吗?

ScrollViewer.HorizontalScrollBarVisibility="Disabled" 

答案 2 :(得分:0)

使用VerticalAlignment="Stretch"代替VerticalAlignment="Top"。这样,文本块将延伸到行的高度。