我试图模拟网格库存系统。我有一些行和列的网格。我有一个图像资源。我得到的错误是:
无法隐式转换类型System.Windows.Controls.Image'到' System.Windows.Media.Brush'
如果我将我的Image强制转换为ImageBrush,那么项目会编译,但exe会立即崩溃。
<Grid x:Name="MasterGrid" Margin="0">
<Grid.Resources>
<Image x:Key="notepad" Source="notepad_16x16.jpg" />
</Grid.Resources>
// create a border and set it's background image
Border border = new Border();
border.Visibility = System.Windows.Visibility.Visible;
var img = (Image)MasterGrid.FindResource("notepad");
border.Background = img;
// add the border to the grid
Grid.SetRow(border, 0);
Grid.SetColumn(border, 1);
Grid.SetRowSpan(border, 1);
Grid.SetColumnSpan(border, 1);
InvGrid.Children.Add(border);
答案 0 :(得分:1)
border.Background期待一个画笔,你用图像填充它。您需要从Image资源
创建ImageBrushborder.Background = new ImageBrush((BitmapImage)FindResource("notepad"));
您的图片资源应定义如下:
<Grid.Resources>
<BitmapImage x:Key="notepad" UriSource="images/notepad_16x16.jpg" />
</Grid.Resources>
答案 1 :(得分:0)
<Grid.Background>
<ImageBrush ImageSource="C:\... your path to the image\notepad_16x16.jpg"/>
</Grid.Background>
这对我来说没有设置边框。