工具欄布局采用WPF中Grid作為容器,按鈕采用自定義樣式和圖標,並采用Separator分割線:
XAML設計器代碼:
其中 Style="{StaticResource ButtonStyle}" 按鈕樣式可以根據自身UI風格來使用自定義樣式
<Button x:Name="BtnRotate" Margin="5,0,0,0" Style="{StaticResource ButtonStyle}" HorizontalAlignment="Left" VerticalAlignment="Top" Height="59" Click="BtnRotate_Click" > <Button.Content> <Grid> <Image Source="/PACS;component/Resources/旋轉.png" Margin="-5,-1,-5,21" /> <TextBlock Text="旋轉" Foreground="White" Margin="0,32,0,0" /> </Grid> </Button.Content> <Button.ContextMenu> <ContextMenu > <MenuItem Header="自由旋轉 (Ctrl X)" Click="MyRotate_Click" > <MenuItem.Icon> <ImageBrush ImageSource="/PACS;component/Resources/自由旋轉.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="角度回零" Click="RotateClear_Click"> <MenuItem.Icon> <ImageBrush ImageSource="/PACS;component/Resources/角度歸零.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="右旋轉90°" Click="RotateRight90_Click"> <MenuItem.Icon> <ImageBrush ImageSource="/PACS;component/Resources/右旋轉90.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="左旋轉90°" Click="RotateLeft90_Click"> <MenuItem.Icon> <ImageBrush ImageSource="/PACS;component/Resources/左旋轉90.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="水平翻轉" Click="RotateHor_Click"> <MenuItem.Icon> <ImageBrush ImageSource="/PACS;component/Resources/水平翻轉.png"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="垂直翻轉" Click="RotateVer_Click"> <MenuItem.Icon> <ImageBrush ImageSource="/PACS;component/Resources/垂直翻轉.png"/> </MenuItem.Icon> </MenuItem> </ContextMenu> </Button.ContextMenu> </Button>
需要注意的是,當我們點擊按鈕時彈出的菜單實際上是右鍵菜單ContextMenu,
所以要在按鈕的點擊事件中顯示右鍵菜單並定位:
//設置關聯按鈕 BtnRotate.ContextMenu.PlacementTarget = BtnRotate; //彈出時的位置在底部 BtnRotate.ContextMenu.Placement = PlacementMode.Bottom; //顯示菜單 BtnRotate.ContextMenu.IsOpen = true;