2010-10-27 5 views
0

J'essaie d'utiliser ce qui est ci-dessous en tant que DataTemplate pour les éléments liés dans un ListBox. Il semble bien, sauf pour le texte dans la zone de texte "Titre". Il tronque, comme il est censé le faire, mais pour les titres qui sont assez longs pour être tronqués, le bord droit, juste là où le texte est coupé, est légèrement funky, une sorte de couleur orange. Est-ce que cela a quelque chose à voir avec la façon dont les polices sont représentées - avec une sorte de superposition dans la police elle-même qui pourrait être dérangée par le découpage de Silverlight?Couper du texte dans Silverlight

J'ai essayé de jouer avec les marges, pour voir si cela aiderait d'une certaine manière, mais ce n'était pas le cas.

<DataTemplate x:Key="BookDataTemplateSmall"> 
     <Border CornerRadius="3" BorderThickness="2" BorderBrush="Black"> 
      <Grid Margin="3"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="60"></ColumnDefinition> 
        <ColumnDefinition Width="250"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <Image Grid.Column="0" x:Name="imgSmall" Stretch="Fill" Source="{Binding Path=SmallImgURI}" Margin="7,0,0,0" Cursor="Hand"></Image> 
       <StackPanel HorizontalAlignment="Left" Grid.Column="1" Margin="5,0,10,0"> 
        <TextBlock Foreground="Black" ToolTipService.ToolTip="{Binding Path=CurrentBook.Title}" Width="240" Text="{Binding Path=CurrentBook.Title}"></TextBlock> 
        <TextBlock Text="{Binding Path=CurrentBook.Published, StringFormat=d}"></TextBlock> 
       </StackPanel> 
      </Grid> 
     </Border> 
    </DataTemplate> 
+0

Cela aide-t-il si vous définissez la propriété 'UseLayoutRounding' de' ListBox' (http://msdn.microsoft.com/en-us/library/system.windows.uielement.uselayoutrounding(v=VS.95) .aspx) à 'vrai'? –

+0

Non, ce n'est pas le cas mais merci d'avoir lancé ça. –

Répondre

2

Il pourrait aider à utiliser the TextBlock.TextTrimming property

Essayez le mettre à

System.Windows.TextTrimming.WordEllipsis; 

OU

System.Windows.TextTrimming.CharacterEllipsis; 

Jetez un oeil à this page pour plus d'informations.

+0

Cela a fonctionné. Je souhaite juste que l'ellipse ne soit pas si "gourmande" - il y a clairement de la place pour un mot de plus ou deux, mais bon, c'est mieux que la coupure de couleur bizarre. Merci. –

+2

CharacterEllipsis n'est pas supporté par silverlight. Triste mais vrai. – Ray

Questions connexes