在后面的代码中将图像插入到按钮中

时间:2011-04-06 01:19:02

标签: c# wpf image

我有以下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未处理”,这与我的代码无关。任何人都可以指出哪里出错了吗?

2 个答案:

答案 0 :(得分:1)

您的代码中会抛出异常,但XamlParseException会使其模糊不清。我的猜测是图像路径错误。

在Visual Studio中,按Ctrl-Alt-E键以显示“例外”窗口,然后确保在两列中都选中“公共语言运行时例外”,然后运行代码。

执行将在发生错误的代码行中断,应该很容易从那里修复(如果没有,发布异常文本)。

enter image description here

答案 1 :(得分:0)

唯一不同的想法是Uri,所以我怀疑它可能有问题,请参阅page on pack URIs