1、界面设计
<Window x:Class="WpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp"
Icon="https://demosc.chinaz.net/Files/pic/iconsico/8254/e9.ico"
mc:Ignorable="d"
Title="TestImage" Height="600" Width="900" WindowStartupLocation="CenterScreen">
<Window.Resources>
<ResourceDictionary x:Uid="CommandDict">
<RoutedCommand x:Uid="SetBackGround" x:Key="SetBackGround"/>
</ResourceDictionary>
</Window.Resources>
<Window.CommandBindings>
<CommandBinding x:Uid="SetBackGroundParameter" Command="{StaticResource SetBackGround}" Executed="Pic_BackGround_Click" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding x:Uid="AddKeyBinding" Key="O" Modifiers="Ctrl+Shift" Command="{StaticResource SetBackGround}"/>
</Window.InputBindings>
<Grid>
<DockPanel x:Name="myDockPanel">
<Menu DockPanel.Dock="Top" Height="30" Margin="0,0,0.333,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<MenuItem Header="文件" Height="30" Background="Violet">
<MenuItem Header="打开" InputGestureText="Ctrl+0">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j14.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="保存" InputGestureText="Ctrl+S">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j13.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="另存为" InputGestureText="F12">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j12.ico"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem Header="打印预览">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j11.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="打印" InputGestureText="Ctrl+P">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j10.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="退出" InputGestureText="F4">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j9.ico"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="编辑" Height="30" Background="Aqua">
<MenuItem Header="背景图片" InputGestureText="Ctrl + Shift + O" Click="Pic_BackGround_Click">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b8.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="恢复" InputGestureText="Ctrl+Y">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b1.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="重做" InputGestureText="Ctrl+Z">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b2.ico"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem Header="复制" InputGestureText="Ctrl+C">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b4.ico"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="粘贴" InputGestureText="Ctrl+V">
<MenuItem.Icon>
<Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b5.ico"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem Header="字体">
<MenuItem Header="黑体" InputGestureText="Ctrl+B" IsCheckable="True"/>
<MenuItem Header="斜体" InputGestureText="Ctrl+I" IsCheckable="True"/>
<Separator/>
<MenuItem Header="增大字体" IsCheckable="True"/>
<MenuItem Header="缩小字体" IsCheckable="True"/>
</MenuItem>
</MenuItem>
</Menu>
</DockPanel>
</Grid>
</Window>
2、C#代码
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Forms;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Controls;
namespace WpfApp
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Pic_BackGround_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog pic = new OpenFileDialog();
pic.Title = "设置背景图片";
pic.Filter = "图形文件(*.jpg)|*.jpg";
if (pic.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ImageBrush p = new ImageBrush(new BitmapImage(new Uri(pic.FileName, UriKind.Absolute)));
Console.WriteLine(pic.FileName);
myDockPanel.Background = p;
}
}
}
}
3、演示
a.文件菜单
b.编辑菜单
c.设置背景图片快捷键“Ctrl+Shift+O”
暂且只设置了一个快捷键喔,其它的快捷键,有兴趣的可以类推一下,就出来了(▽)
本文摘自 :https://www.cnblogs.com/