2009-05-18 10 views
0

私はWPFで、ToolBar.Headerプロパティは何もしない二つの異なる本で読んだことがある:WPFでは、どうやってToolBar.Headerを消滅させることができますか?

しかし、私は(tbtToolBarが実際にXAMLで定義されたToolBarTrayあり、VMは、ウィンドウのViewModelにある)私のツールバーには、次のように動的にオブジェクトを作成しています:

foreach (IToolBarViewModel toolBarViewModel in vm.ToolBars) 
{ 
    ToolBar toolBar = new ToolBar(); 
    toolBar.DataContext = toolBarViewModel; 

    // Bind the Header Property 
    Binding headerBinding = new Binding("Header"); 
    toolBar.SetBinding(ToolBar.HeaderProperty, headerBinding); 

    // Bind the Items Property 
    Binding itemsBinding = new Binding("Items"); 
    toolBar.SetBinding(ToolBar.ItemsSourceProperty, itemsBinding); 

    tbtToolBar.ToolBars.Add(toolBar); 
} 

そして、ヘッダープロパティは、ツールバーの最初の項目としてラベルに明示的に表示されます。これは私が望む行動ではありません。書籍の説明と同じように、ToolBarTrayを右クリックすると、ToolBarsのドロップダウンリストのタイトルとしてHeaderを使用したいと思います。

toolBar.HeaderTemplate = new DataTemplate(); 

これは動作しますが、今のツールバーにある小さな見苦しいギャップがあります:

だから、私は設定して、ヘッダーを取り除くことを試みました。

  1. ギャップなしでヘッダーを見えなくする方法はありますか?
  2. なぜ書籍は明らかに間違っていますか?当時と今の間に何か変わりましたか?

答えて

0

私がこの作業を行うことができた唯一の方法は、Headerプロパティをnullにし、NameというToolBarViewModelに別のプロパティを作成することでした。

関連する問題