2016-05-02 9 views
0

私はビューを持っています。ビュー内のグリッドは2つの列に分割されています。 オート列(カラム0)インサイドグリッド内のリストボックスの幅を制御する

<Grid x:Name="grdView"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

、私はリストボックスやリストボックス用に定義されたデータテンプレートを持って、このビューの中に別のビュー

<Border Grid.Column="0" Style="{DynamicResource BorderStyle}"> 
    <Views:ViewerDataBrowser x:Name="dataBrowser" DataContext="{Binding ViewDataBrowserInstance}" /> 
</Border> 

を持っています。 データテンプレート内には、それぞれに2行と2つのテキストブロックがあります。

テキストブロックの文字列の幅以上である場合、リストボックスは、延伸されており、スクロールバーも表示されます。私はそれが起こることを望んでいません。テキストを切り捨てて、最後に表示します。

テキストブロックのテキストトリミングとテキストラッピングを試みました。しかし、それは動作しませんでした。私はまた、データテンプレートの幅をAutoに設定しようとしましたが、動作しません。可能な解決策は、データテンプレートの幅を一定値に設定することです。

グリッド内にリストボックスを収め、テキストブロックに長いテキストがあってもスクロールバーを表示しないようにします。解決策を提案してください。

答えて

0

グリッドの列幅が「*」に設定されているために問題が発生しています。 列の幅を定数、つまり親の幅と同じ幅に変更すると、問題が修正されたようです。

テキストブロックの切り捨てに関して、私はテキストボックストリミングプロパティを設定しました。

1

MSDN siteに記載されているように、listBoxのhoriztonalScrollBarプロパティを取得および設定できます。 listBox(pre-uwp)の幅を設定する場合、device independent pixels(DIP)を使用することができます。また、定数を使用する代わりに、リストボックスのコンテナの幅に比例した幅を設定することもできます.DIPと自動サイズ変更は推奨されていませんが、特定のディメンションがうまく動作するためです。

関連する問題