2016-03-27 13 views
0

WPF XAML pencereme nasıl Menu eklemeye çalıştığımı anlamaya çalışıyorum. Pencerem şu anda içerik düzeni için Grid kullanıyor. Pencerenin en üstünde, genellikle WinForm uygulamalarında gördüğünüz gibi bir Menu eklemek istiyorum.Bir Kılavuz'u Izgaraya kullanarak bir Pencereye eklerken, Menüye kendi satırını mı vereyim yoksa bir tür panel kullanıyor muyum?

Örneklere baktım, ancak örneklerin hiçbiri Grid kullanımını açıklamıyor gibi görünüyor. Çoğu örneği, bir StackPanel veya DockPanel gibi şeyleri kullanarak görüyorum.

Geçerli Window, Grid ile. Bu Menu'u kendi satırında mı vermeliyim yoksa bir çeşit panele ihtiyacım var mı?

<Menu Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0"> 
    <MenuItem Header="_File"/> 
    <MenuItem Header="_Edit"/> 
    <MenuItem Header="_Help"/> 
</Menu> 

Bu görevi tamamlamak için başka konteyner denetimleri gerekmez: Aşağıdaki örnekte gösterildiği gibi ana WPF düzeni Grid için

<Window> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="1*" /> 
      <RowDefinition Height="3*" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="1*" /> 
      <ColumnDefinition Width="3*" /> 
     </Grid.ColumnDefinitions> 
     <Menu> 
      <MenuItem Header="File" /> 
     </Menu> 
     <GroupBox Header="Seasons" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2"> 
      <DataGrid Name="lstSeasons" AutoGenerateColumns="False" IsReadOnly="True" HeadersVisibility="Column" ItemsSource="{Binding SeasonsCollectionView}"> 
       <DataGrid.Columns> 
        <DataGridTextColumn Header="Name" Width="*" Binding="{Binding Name}" /> 
        <DataGridTextColumn Header="Division" Width="*" Binding="{Binding Division}" /> 
       </DataGrid.Columns> 
      </DataGrid> 
     </GroupBox> 
    </Grid> 
</Window> 

cevap

3

ekleyebilir Menu . Bu yardımcı olabilir http://examn8.com

Hope: Burada gösterilen bu Menu tekniği (app penceresinin üst kısmında Menu Bar fark) kullanılarak gerçek WPF uygulamasının ekran görüntüsü. Birden kolon bulunması halinde

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Menu Grid.Row="0"> 
     <MenuItem Header="Load" IsEnabled="False"/> 
     <MenuItem Header="Save" IsEnabled="True"/> 
     <MenuItem Header="_Import/Export" IsEnabled="False"> 
      <MenuItem Header="_Import"/> 
      <MenuItem Header="_Export"/> 
     </MenuItem> 
    </Menu> 
    <TreeView Grid.Row="1" x:Name="tests" Width="auto"> 
    </TreeView> 
</Grid> 

, sen Menü Grid.ColumnSpan özniteliği ayarlanmış olmalıdır:

0

İşte bu oldukça iyi iş gibi görünüyor bkz oldukça yaygın bir uygulamasıdır.

İlgili konular