我有以下XAML片段在Button中添加图像。 XAML工作正常:
<Button>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.Column="0" Source="Images/reset.png"/>
</Grid>
</Button>
我尝试将上面的XAML转换为C#,但没有让它工作
Button btn = new Button();
Grid imgGrid = new Grid();
imgGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });
imgGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto });
Image img = new Image();
img.Source = new BitmapImage(new Uri("/ReighGaugeSoftware1;component/Images/config.png"));
img.Stretch = Stretch.Uniform;
imgGrid.Children.Add(img);
Grid.SetRow(img, 0);
Grid.SetColumn(img, 0);
btn.Content = imgGrid;
这是一个直接的转换,但是调试会抛出“XamlParseException未处理”,这与我的代码无关。任何人都可以指出哪里出错了吗?
答案 0 :(得分:1)
您的代码中会抛出异常,但XamlParseException会使其模糊不清。我的猜测是图像路径错误。
在Visual Studio中,按Ctrl-Alt-E键以显示“例外”窗口,然后确保在两列中都选中“公共语言运行时例外”,然后运行代码。
执行将在发生错误的代码行中断,应该很容易从那里修复(如果没有,发布异常文本)。
答案 1 :(得分:0)
唯一不同的想法是Uri,所以我怀疑它可能有问题,请参阅page on pack URIs。