none
Menü aus einem Resource XAML laden RRS feed

  • Frage

  • Hallo Forum,

    ich habe in einer Applikation ein recht großes Menü im MainWindow-XAML. Ist es möglich das Menü in ein eigenes ResourceXAML auszulagern, und wie binde ich das ausgelagerte Menü in mein MainWindow wieder ein.

    Danke und Gruß
    Gerhard

    Freitag, 4. November 2016 08:11

Antworten

  • Hallo Gerhard,

    du könntest für das Menü ein ControlTemplate erstellen, welches du dann in ein ResourceDictionary auslagern kannst.

    <!--MenuResource.xaml-->
    <ResourceDictionary>
        <ControlTemplate x:Key="myMenu">
            <Menu>
                <MenuItem Header="_File"/>
                <MenuItem Header="Edit">
                    <MenuItem Header="_Cut" Command="Cut"/>
                    <MenuItem Header="_Copy" Command="Copy"/>
                    <MenuItem Header="_Paste" Command="Paste"/>
                </MenuItem>
                <MenuItem Header="Settings"/>
                <MenuItem Header="Help"/>
            </Menu>
        </ControlTemplate>
    </ResourceDictionary>
    <!--MainWindow.xaml-->
    <Window.Resources>
        <ResourceDictionary Source="MenuResource.xaml"/>
    </Window.Resources>
    <Grid>
        <Menu Template="{StaticResource myMenu}"/>
    </Grid>
    Beste Grüße
    Samstag, 5. November 2016 09:48

Alle Antworten

  • Hallo Gerhard,

    du könntest für das Menü ein ControlTemplate erstellen, welches du dann in ein ResourceDictionary auslagern kannst.

    <!--MenuResource.xaml-->
    <ResourceDictionary>
        <ControlTemplate x:Key="myMenu">
            <Menu>
                <MenuItem Header="_File"/>
                <MenuItem Header="Edit">
                    <MenuItem Header="_Cut" Command="Cut"/>
                    <MenuItem Header="_Copy" Command="Copy"/>
                    <MenuItem Header="_Paste" Command="Paste"/>
                </MenuItem>
                <MenuItem Header="Settings"/>
                <MenuItem Header="Help"/>
            </Menu>
        </ControlTemplate>
    </ResourceDictionary>
    <!--MainWindow.xaml-->
    <Window.Resources>
        <ResourceDictionary Source="MenuResource.xaml"/>
    </Window.Resources>
    <Grid>
        <Menu Template="{StaticResource myMenu}"/>
    </Grid>
    Beste Grüße
    Samstag, 5. November 2016 09:48
  • Hallo Flogex,

    ja, danke das wäre die eine Möglichkeit, eine weiter ist das Menü in ein UserControl auszulagern und auch den DataContext mitzugeben. Der Vortil ist, das ich ohne weiteres noch weitere Parameter mitgeben kann

    <localControl:MainWindowMenu CurrentClient="{Binding Path=CurrentAppClient}"                                     DataContext="{Binding Path=DataContext, 
                ElementName=MainWindowView}" />
    

    Danke und Gruß
    Gerhard

    Montag, 7. November 2016 10:43