项目中新建文件夹 Images,资源管理器中把图片拷贝进去,项目中图片属性设置 build action 为 Resource do not copy 就可以引用了。
<ToolBarTray DockPanel.Dock="Top"> <ToolBar> <Button ToolTip="打开测量界面" Name="tb_measurement" Click="tb_measurement_Click"> <StackPanel Orientation="Vertical"> <Image Source="/MRLGauger;component/Images/measure_40.png" /> <TextBlock Margin="0,2,0,0" HorizontalAlignment="Center">测量</TextBlock> </StackPanel> </Button> <Button ToolTip="打开编程界面" Name="tb_program" Click="tb_program_Click"> <StackPanel Orientation="Vertical"> <Image Source="/MRLGauger;component/Images/measure_40.png" /> <TextBlock Margin="0,2,0,0" HorizontalAlignment="Center">编程</TextBlock> </StackPanel> </Button> <Button Command="Save" Content="Save" /> </ToolBar> </ToolBarTray>
|
动态切换图标和文字
<Window x:Class="MRLGauger.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:MRLGauger" mc:Ignorable="d" Loaded="Window_Loaded" Title="MRLGauger" Height="768" Width="1024" WindowStartupLocation="CenterScreen" Closed="Window_Closed"> <Window.Resources> <StackPanel x:Key="IMG_Auto" Orientation="Vertical"> <Image Source="/MRLGauger;component/Images/auto_40.png" /> <TextBlock Margin="0,2,0,0" HorizontalAlignment="Center">自动</TextBlock> </StackPanel> <StackPanel x:Key="IMG_Manual" Orientation="Vertical"> <Image Source="/MRLGauger;component/Images/manual_40.png" /> <TextBlock Margin="0,2,0,0" x:Name="tb_textBlock_manual" HorizontalAlignment="Center">手动</TextBlock> </StackPanel> </Window.Resources> ...
private void tb_auto_Click(object sender, RoutedEventArgs e) { // 1 自动(默认), 2 手动 if (measureDisplay.operate_type == 1) { measureDisplay.operate_type = 2; ((Button)sender).Content = FindResource("IMG_Manual"); } else if (measureDisplay.operate_type == 2) { measureDisplay.operate_type = 1; ((Button)sender).Content = FindResource("IMG_Auto"); }
tb_textBlock_manual.Text = "文字";
}
|
设置无效
<Button ToolTip="开始自动测量" Name="tb_start" Click="tb_start_Click"> <StackPanel Orientation="Vertical"> <Image x:Name="img_start" Source="{DynamicResource src_img_start}" /> <TextBlock Margin="0,2,0,0" HorizontalAlignment="Center">工步开始</TextBlock> </StackPanel> </Button>
// 设置灰度图 { ImageSource isource = img_start.Source; FormatConvertedBitmap fcb = new FormatConvertedBitmap((BitmapSource)isource, PixelFormats.Gray32Float, null, 0); img_start.Source = fcb; img_start.OpacityMask = new ImageBrush(isource); }
// 回复原图 img_start.Source = FindResource("src_img_start") as BitmapImage;
|