2010-12-02 7 views
1

、3つのTextblocksを含む単純な3列グリッドがあります。Silverlight:Silverlight 4アプリケーションでは、テキストブロックのMaxWidthを列幅を含むように設定します。

 <Grid Background="{StaticResource BrushCharacteristicListBoxItemBackground}"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="0.5*"/> 
       <ColumnDefinition Width="10"/> 
       <ColumnDefinition Width="0.5*"/> 
      </Grid.ColumnDefinitions> 
      <TextBlock x:Name="TextBlockCharacteristicName" Text="{Binding Property1}" HorizontalAlignment="Left" TextTrimming="WordEllipsis" ToolTipService.ToolTip="{Binding Text}" Margin="6,0,0,0" /> 
      <TextBlock x:Name="TextBlockSeperator" Text="=" Grid.Column="1" /> 
      <TextBlock x:Name="TextBlockCharacteristicValue" Text="{Binding Property3}" Grid.Column="2" HorizontalAlignment="Right" Margin="0,0,6,0" /> 
     </Grid> 

グリッドの幅は、含まれているユーザーコントロールによって異なります。今では、おそらくMaxSizeを使用して、グリッドの列のサイズに何とかバインドして、最初のテキストブロックと3番目のテキストブロックのサイズを、その列を含む現在のサイズに制限します。

ここに誰でもこの方法を教えてもらえますか?それは関係なく、その内容の、列の中の可能なサイズを記入しますので、事前に

おかげで、
フランク

答えて

1

デフォルトではTextBlockHorizontalAlignmentプロパティは、「ストレッチ」に設定されています。それはあなたが欲しいものですか?

おそらく何らかの理由で、TextBlockのコンテンツの空き領域がすべて必要でない場合は、その列の幅と同じにしたくないのでしょうか?

の場合TextBlock.HorizontalAlignmentを「左」に設定します。 TextBlockは、までになる必要がある程幅があり、幅が列の幅に達すると、その幅は列によって制限されます。

+0

これは私の考えでも、実際には私のTextBlock(TextBlockCharacteristicName)のHorizo​​ntalAlignementはleftに設定されています。それでも、TextBlockのサイズは列の幅に制約されませんが、テキストブロックのサイズに合わせて列の幅を押します。 – Aaginor

+0

@Aaginor:私は、これらのグリッドをListBoxに表示していると思います。グリッドが配置されている要素を含めるには、内容のサイズを制限する必要があります。 ListBoxは内部的にコンテンツをScrollViewerに配置します。定義によってコンテンツの幅と高さに制約はありません。 – AnthonyWJones

+0

ええ、あなたは正しく推測しています!私はそれが重要だとは思わなかった。だから、その場合のサイズの制約を達成するチャンスはありますか?私はMaxWidthを{Binding Grid.Column [0] .ActualWidth}のよ​​うに設定することを考えましたが、実際の解決策は見つかりませんでした。 – Aaginor

関連する問題