2016-07-01 12 views
-1

ListBoxの中にあるUserControlでは、グリッド内に比例幅(Width = "*")を持つTextBlockを持っていますが、グリッドの残りの幅を取ることができますが、ListBoxのサイズをTextBlockのコンテンツをクリップすると、スクロールバーが表示されます。 TextBlockの幅をクリップすると、水平スクロールバーが表示されません。理想的には、省略記号でクリッピングします。比例グリッド内のテキストブロックをクリップする方法は?

EDIT:ListBoxを忘れてしまった。

+0

グリッドはデフォルトでコンテンツをクリップし、スクロールバーをサポートしていません。 ListBoxまたはScrollViewerをどこでも使用していますか?いくつかのコードが役に立ちます。グリッド内のTextBlockのデフォルトの動作は、あなたが望むもののように聞こえる。あなたはTextBOXを使用していますか(これはスクロールバーをサポートしていますか?) – Joe

+0

はい、グリッドはリストボックス内のUserControl内にあると言います。 – user1032861

+0

トピックを外しています:これは40,000番目のxamlの質問です。おめでとうOPです。しかし、賞品はありません。 –

答えて

1

デフォルトの動作はHorizontalScrollBarVisibilityAutoであるため、リストボックスはスクロールしています。

が無効にこのプロパティを設定してみてください:楕円にクリップするよう

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 

を、これはより複雑です。

  <TextBlock Text="Some very long thing that I'm putting in here to clip" Background="Blue"> 
       <TextBlock.Clip> 
        <EllipseGeometry Center="100,8" RadiusX="100" RadiusY="8" /> 
       </TextBlock.Clip> 
      </TextBlock> 

ただし、テキストボックスの高さと幅にバインドする必要がありますためにセンター、RadiusXとRadiusYを維持するために(おそらく:あなたはClipプロパティを使用して、非常に簡単に省略記号をクリップすることができますこれらの値の半分に変換器を使用する)。

+0

ありがとうございます。それは働いた:) – user1032861

関連する問題