2011-06-30 15 views
2

ボタンを含む水平スタックパネルがあります。WPFの水平スクロールボタン

画面上に余裕があるよりも多くのボタンがあるため、このボタンを右または左にスクロールしてスタックパネルを回転させる必要があります。

水平スクロールバーを使用すると、アプリケーションの外観が損なわれ、循環的に回転しないため、オプションではありません。

  • どのように私は完全にすべてのボタンを回転させる右側の右矢印とスクロールを処理するために、左側の左矢印を持っていないために、スクロールバーを変更することができます。つまり、通常のスクロールバーのように動作しますが、より良く見えます。例えば、 。 < < [BTN] [BTN] [BTN] >>

  • または方法を持っているか、円形にボタンを回転させる本当のスタートしないように、またはボタンの水平収集し、ユーザのためのいくつかの方法で終了しますボタンの位置を移動することができます。

コンテナコントロールはスタックパネルである必要はありません。これは最初のボタンにとって最適なコンテナでした。

私の最初の選択肢はXmalとスタイリングですが、後ろにコードを使用しても問題はありません。

答えて

0

独自のカスタムスクロールボタンを作るのですか? ない場合は、このItemsControlにの実際のItemsSourceになりますItemsPanelを設定するスタイルで

<ItemsPanelTemplate x:Key="ItemsPanelStyle"> 
     <StackPanel Orientation="Horizontal"></StackPanel> 
    </ItemsPanelTemplate> 

にし、ItemsControlに

<ScrollViewer 
    x:Name="PART_ScrollViewer" 
    HorizontalScrollBarVisibility="Hidden" 
    VerticalScrollBarVisibility="Hidden" 
    CanContentScroll="True" 
    > 
     <ItemsPresenter/> 
    </ScrollViewer> 

あなたのツールバーのボタンのControlTemplateの中で、のItemsControlを作成することができます。あなたは(あなたが必要とするスクロールボタンを右にスクロール)今、テンプレート内のボタンを作成し、それのコマンドであなたは

ScrollViewer myViewer = GetTemplatedPart("PART_ScrollViewer"); 
if(myViewer != null) 
{ 
    myViewer.LineRight(); 
} 

を実行すると、これは(ボタンのリストの末尾刚性右に各要素をスクロールする必要があります通知の利点:要素の幅に関係なく)。 同じことを左に行うことができます。

HTH、daniell