1

私は次のコードを持っています:

    <ribbon:Ribbon.ApplicationMenu>
        <ribbon:RibbonApplicationMenu ToolTipTitle="Application Menu">
            <ribbon:RibbonApplicationMenuItem Header="Company"
                                              x:Name="MenuItem_Company"
                                              ImageSource="Images\LargeIcon.png"
                                              Command="{Binding Path=CompanyCommand}">
                <StackPanel>                            
                    <TextBlock Text="Item 1 in the list" />
                    <TextBlock Text="Item 2 in the list" />
                    <TextBlock Text="Item 3 in the list" />
                    <TextBlock Text="Item 4 in the list" />
                </StackPanel>
            </ribbon:RibbonApplicationMenuItem>

            <ribbon:RibbonApplicationMenuItem Header="DocStore Settings"
                                              x:Name="MenuItem1"
                                              ImageSource="Images\LargeIcon.png"  
                                              Click="MenuItem1_Click"/> 
            <ribbon:RibbonApplicationMenuItem Header="About DocStore"
                                              x:Name="MenuItem2"
                                              ImageSource="Images\LargeIcon.png" 
           Click="MenuItem2_Click" /> 
            <ribbon:RibbonApplicationMenuItem Header="Exit"
                                              x:Name="MenuExit"
                                              ImageSource="Images\LargeIcon.png" 
           Click="Exit" />                              
        </ribbon:RibbonApplicationMenu>
    </ribbon:Ribbon.ApplicationMenu>

ハードコードされているTextBlockアイテムを置き換えて、最初のRibbonApplicationMenuItem内のスタックパネルにアイテムを動的に追加したいと思います。いくつ利用できるかわかりませんが、例として4を挙げます。

これは可能ですか?もしそうなら、どうすればそれを行うことができますか?

ありがとう!エロック

4

1 に答える 1

0

これは私がXAMLで行ったことであり、スタックパネルを削除しました。

<!--<StackPanel x:Name="CompanyStackPanel">                            
    <TextBlock Text="Item 1 in the list" />
    <TextBlock Text="Item 2 in the list" />
    <TextBlock Text="Item 3 in the list" />
    <TextBlock Text="Item 4 in the list" />
</StackPanel>-->

そして、フォームの背後にあるコード:

  // ToDo: Create interface to populate the mymenutems
  List<string> mymenuitems = new List<string>();  // = someinterface
  mymenuitems.Add("Test Menu 1");
  mymenuitems.Add("Test Menu 2");
  mymenuitems.Add("Test Menu 3");
  mymenuitems.Add("Test Menu 4");
  foreach (var item in mymenuitems)
  { 
    var margins = new Thickness(2);
    var newtextbox = new Label() { Margin = margins, Content = item};
    MenuItem_Company.Items.Add(newtextbox);      
  }

これが皆さんのお役に立てば幸いです。私にとってはうまくいったようです。

于 2010-11-06T22:12:59.717 に答える