C# - Windows Phone - MaxWidth& MaxHeight属性被忽略

时间:2013-07-08 14:24:29

标签: c# windows-phone-7 canvas windows-phone-8 css

我在ListBox中有一些画布。在这些画布中,我有一些TextBlocks,它们的文本绑定到它们。但是,当我尝试在文本块(或标准高度/宽度)上使用MaxWidth / Height属性时,属性将被忽略!所以我最终在案例中填写了Canvas文本。

我非常感谢有关此事的任何帮助,我希望我不仅仅是一个盲目的白痴!

哦,这是代码(我正在谈论的TextBlock是第一个):

<ListBox Margin="0,-9,-12,0" ItemsSource="{Binding}" Name="listBoxNotes" HorizontalAlignment="Left" VerticalAlignment="Top" Width="400" Height="548">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <Canvas Height="175" Width="360" Background="{StaticResource PhoneAccentBrush}" toolkit:TiltEffect.IsTiltEnabled="True" Name="canvasNote" Tap="canvasNote_Tap">
                    <TextBlock Text="{Binding Title}" FontWeight="Bold" FontSize="26" Foreground="White" Canvas.Left="10" Canvas.Top="5" x:Name="Title" Width="100" MaxWidth="100"/>
                    <TextBlock Text="{Binding Details}" TextWrapping="Wrap" Width="352" FontSize="24" Foreground="White" Canvas.Left="10" Canvas.Top="35" />
                </Canvas>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

1 个答案:

答案 0 :(得分:2)

这个问题是Canvas并没有限制他们孩子的大小,特别是TextBlock控件会增加所需的数量。

解决问题的方法很多:

  • 请勿使用TextBlock,而应使用TextBox
  • 请勿使用Canvas,而是使用其他容器,例如BorderGridStackPanel ......
  • 尝试剪切TextBlock内容

<TextBlock.Clip> <RectangleGeometry Rect="0, 0, 50, 30"/> </TextBlock.Clip>