Ограничение ширины текстового блока в Silverlight - PullRequest
0 голосов
/ 21 июля 2010

Очевидное значение MaxWidth игнорируется, и текст в текстовом блоке «DisplayBox» отображает весь текст, даже если этот текст продолжается после элементов управления родительского контейнера (до края области silverlight.

<win:HierarchicalDataTemplate x:Key="hierarchicalTemplate" ItemsSource="{Binding _children}">
    <Border BorderThickness="0" BorderBrush="Orange" HorizontalAlignment="Stretch" Background="{Binding Converter={StaticResource BackgroundConverter}}">
        <toolkit:DockPanel LastChildFill="True" Width="{Binding HeirarchyLevel, Converter={StaticResource WidthConverter}}" Height="20">
            <Canvas toolkit:DockPanel.Dock="Right" Width="20" MouseLeftButtonUp="Arrow_MouseLeftButtonDown">
                <Rectangle Width="20" Height="20" Fill="Transparent" />
                <Line Stroke="Black" X1="5" Y1="10" X2="17" Y2="10" />
                <Line Stroke="Black" X1="11" Y1="5" X2="17" Y2="10" />
                <Line Stroke="Black" X1="11" Y1="15" X2="17" Y2="10" />
            </Canvas>
            <Ellipse Canvas.Top="5" Width="10" Height="10" Fill="Green" toolkit:DockPanel.Dock="Right" MouseLeftButtonDown="Ellipse_MouseLeftButtonDown" />
            <Canvas Width="Auto" Loaded="TextArea_Loaded">
                <TextBlock Name="DisplayBox" FontFamily="Arial" FontSize="17" Foreground="Black" Width="Auto" Text="{Binding TaskName}" MouseLeftButtonUp="TextBlock_MouseLeftButtonUp" /> 
                <TextBox Name="EditBox" FontFamily="Arial" FontSize="10" Foreground="Black" Height="20" Text="{Binding TaskName}" Visibility="Collapsed" LostFocus="TextBox_LostFocus" />
                <Line Stroke="Black" X1="0" Y1="10" X2="202" Y2="10" Width="Auto" />
            </Canvas>
        </toolkit:DockPanel>
    </Border>
</win:HierarchicalDataTemplate>

Ответы [ 2 ]

1 голос
/ 06 января 2011
       <Canvas Width="Auto" Loaded="TextArea_Loaded">
**<Border>**                    
<TextBlock Name="DisplayBox" FontFamily="Arial" FontSize="17" Foreground="Black" Width="Auto" Text="{Binding TaskName}" MouseLeftButtonUp="TextBlock_MouseLeftButtonUp" /> 
                    <TextBox Name="EditBox" FontFamily="Arial" FontSize="10" Foreground="Black" Height="20" Text="{Binding TaskName}" Visibility="Collapsed" LostFocus="TextBox_LostFocus" />
                    <Line Stroke="Black" X1="0" Y1="10" X2="202" Y2="10" Width="Auto" />
**</Border>**
                </Canvas>

Должно также работать. (Граница будет учитывать максимальную длину этикетки. Сама граница не будет видна, поскольку ее толщина равна 0.

1 голос
/ 21 июля 2010

Можете ли вы переключиться на использование сетки вместо холста?TextBlock будет соответствующим образом вырезан, когда он является дочерним элементом GridЭто не относится к Canvas.

...