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 回答
0

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

ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
于 2013-04-15T14:38:22.093 回答
0

使用VerticalAlignment="Stretch"而不是VerticalAlignment="Top". 这样,文本块将拉伸到行的高度。

于 2013-04-15T14:43:27.833 回答