Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Menu sınıfı, komutlarla ve olay işleyicileriyle ilişkili öğeleri hiyerarşik düzende düzenlemenizi sağlar. Her Menu öğesi bir MenuItem öğeleri koleksiyonu içerir.
Menü Denetimi
Menu denetimi, bir uygulama için komutları veya seçenekleri belirten öğelerin listesini sunar. Genellikle bir MenuItem tıklanması bir alt menü açar veya uygulamanın komut yürütmesine neden olur.
Menü Oluşturma
Aşağıdaki örnek, bir Menuiçindeki metni işlemek için bir TextBox oluşturur. Menu, MenuItem, Commandve IsCheckable özelliklerini ve Header, Checkedve Unchecked olaylarını kullanan Click nesneleri içerir.
<Menu>
<MenuItem Header="_Edit">
<MenuItem Command="ApplicationCommands.Copy"/>
<MenuItem Command="ApplicationCommands.Cut"/>
<MenuItem Command="ApplicationCommands.Paste"/>
</MenuItem>
<MenuItem Header="_Font">
<MenuItem Header="_Bold" IsCheckable="True"
Checked="Bold_Checked"
Unchecked="Bold_Unchecked"/>
<MenuItem Header="_Italic" IsCheckable="True"
Checked="Italic_Checked"
Unchecked="Italic_Unchecked"/>
<Separator/>
<MenuItem Header="I_ncrease Font Size"
Click="IncreaseFont_Click"/>
<MenuItem Header="_Decrease Font Size"
Click="DecreaseFont_Click"/>
</MenuItem>
</Menu>
<TextBox Name="textBox1" TextWrapping="Wrap"
Margin="2">
The quick brown fox jumps over the lazy dog.
</TextBox>
private void Bold_Checked(object sender, RoutedEventArgs e)
{
textBox1.FontWeight = FontWeights.Bold;
}
private void Bold_Unchecked(object sender, RoutedEventArgs e)
{
textBox1.FontWeight = FontWeights.Normal;
}
private void Italic_Checked(object sender, RoutedEventArgs e)
{
textBox1.FontStyle = FontStyles.Italic;
}
private void Italic_Unchecked(object sender, RoutedEventArgs e)
{
textBox1.FontStyle = FontStyles.Normal;
}
private void IncreaseFont_Click(object sender, RoutedEventArgs e)
{
if (textBox1.FontSize < 18)
{
textBox1.FontSize += 2;
}
}
private void DecreaseFont_Click(object sender, RoutedEventArgs e)
{
if (textBox1.FontSize > 10)
{
textBox1.FontSize -= 2;
}
}
Private Sub Bold_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontWeight = FontWeights.Bold
End Sub
Private Sub Bold_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontWeight = FontWeights.Normal
End Sub
Private Sub Italic_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontStyle = FontStyles.Italic
End Sub
Private Sub Italic_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontStyle = FontStyles.Normal
End Sub
Private Sub IncreaseFont_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If textBox1.FontSize < 18 Then
textBox1.FontSize += 2
End If
End Sub
Private Sub DecreaseFont_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If textBox1.FontSize > 10 Then
textBox1.FontSize -= 2
End If
End Sub
Menü Öğeleri ile Klavye Kısayolları
Klavye kısayolları, Menu komutları çağırmak için klavyeyle girilebilen karakter bileşimleridir. Örneğin, Kopyala kısayolu CTRL+C şeklindedir. Klavye kısayolları ve menü öğeleriyle kullanılacak iki özellik vardır:InputGestureText veya Command.
Giriş Hareketi Metni
Aşağıdaki örnekte, InputGestureText denetimlerine klavye kısayolu metni atamak için MenuItem özelliğinin nasıl kullanılacağı gösterilmektedir. Bu yalnızca klavye kısayolunu menü öğesine yerleştirir. komutunu MenuItemile ilişkilendirmez. Uygulamanın eylemi gerçekleştirmek için kullanıcının girişini işlemesi gerekir.
<MenuItem Header="_Cut" InputGestureText="Ctrl+X"/>
<MenuItem Header="_Find" InputGestureText="Ctrl+F"/>
Komut
Aşağıdaki örnekte,
<MenuItem Header="_Open" Command="ApplicationCommands.Open"/>
<MenuItem Header="_Save" Command="ApplicationCommands.Save"/>
MenuItem sınıfı, komutun oluştuğu öğeyi belirten bir CommandTarget özelliğine de sahiptir. CommandTarget ayarlanmadıysa, klavye odağı olan öğe komutunu alır. Komutlar hakkında daha fazla bilgi için bkz. Komuta Genel Bakış.
Menü Stili
Denetim stiliyle, özel denetim yazmak zorunda kalmadan Menu denetimlerinin görünümünü ve davranışını önemli ölçüde değiştirebilirsiniz. Görsel özellikleri ayarlamaya ek olarak, denetimin tek tek bölümlerine bir Style uygulayabilir, özellikler aracılığıyla denetimin bölümlerinin davranışını değiştirebilir veya ek bölümler ekleyebilir veya denetimin düzenini değiştirebilirsiniz. Aşağıdaki örneklerde, Style denetimine Menu eklemenin çeşitli yolları gösterilmektedir.
İlk kod örneği, stilinizde geçerli sistem ayarlarının nasıl kullanılacağını gösteren Style adlı bir Simple tanımlar. Kod, menünün arka plan rengi olarak MenuHighlightBrush rengini ve menünün ön plan rengi olarak MenuTextBrush atar. Fırçaları atamak için kaynak anahtarlarını kullandığınıza dikkat edin.
<Style x:Key="Simple" TargetType="{x:Type MenuItem}">
<Setter Property = "Background" Value= "{DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}}"/>
<Setter Property = "Foreground" Value= "{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
<Setter Property = "Height" Value= "{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"/>
</Style>
Aşağıdaki örnek, Trigger'de olan olaylara yanıt olarak bir MenuItem'in görünümünü değiştirmenizi sağlayan Menu öğelerini kullanır. Fareyi Menuüzerine taşıdığınızda, ön plan rengi ve menü öğelerinin yazı tipi özellikleri değişir.
<Style x:Key="Triggers" TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="MenuItem.IsMouseOver" Value="true">
<Setter Property = "Foreground" Value="Red"/>
<Setter Property = "FontSize" Value="16"/>
<Setter Property = "FontStyle" Value="Italic"/>
</Trigger>
</Style.Triggers>
</Style>
Ayrıca bakınız
.NET Desktop feedback