1

私はそのListBox中にこのテンプレートを持っています。

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="Template">
        <StackPanel Margin="0,10">
            <Border BorderBrush="Black" BorderThickness="1" Background="#FFFFC000" Width="460" MinHeight="76">
                <StackPanel Margin="4,4,-4,-153">
                    <TextBlock  Text="{Binding }" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Black" TextWrapping="Wrap"/>
                    <TextBlock " Text="{Binding Mode=OneWay}" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Black" TextWrapping="Wrap"/>
                </StackPanel>
            </Border>
        </StackPanel>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

しかし、私は強制的に設定する必要がWidthありHeightBorderそれ以外の場合は「2」のようWidthになります。Height

TextBlock内部に 2 つあり、両方を埋めるために拡張しないことを理解していないようです。

これにより、テキストが大きすぎて切り取られるように、気に入らないものに固定の高さと幅を配置する必要が生じます。

4

1 に答える 1

0

StackPanelあなたはそれらを必要としないのであなたはあなたの を捨てることができますGrid. ネガもfor でMargin通常見られるものではないので、ツリーの他の場所でそのような練習から、他のファンキーなレイアウトが行われていると思います.DataTemplateListBox

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="Template">
         <Grid Margin="0,10">
            <Border BorderBrush="Black" BorderThickness="1" Background="#FFFFC000"/>
            <TextBlock TextWrapping="Wrap" 
                       HorizontalAlignment="Center" Margin="4,4,-4,-153"> 
                 <Run Text="{Binding }"/><LineBreak/>
                 <Run Text="{Binding Mode=OneWay}"/>
            </TextBlock>
         </Grid>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

したがって、どこかで何かが欠けていない限り、これで修正されるはずです。これはGrid、が子のサイズを処理し、親で必要なスペースを消費するためです。ただし、構造内に他のものがあり、そのスペースを消費させない場合は、ラッピングを呼び出す必要があります。

お役に立てれば :)

于 2013-10-25T21:29:01.303 に答える