0

我一直在用 C# 处理这个项目,处理用 ClearCanvas 在 C# 中打开一个 dicom 图像,我有这个无法修复的重复出现的错误。我的代码如下

enter 
    private void pictureBox1_Click(object sender, EventArgs e)
    {

        string filename = @"C:\Users\Don jar\Pictures\Xray pics\fluro.dcm";
        DicomFile dicomFile = new DicomFile(filename);
        dicomFile.Load(DicomReadOptions.Default);
        foreach (DicomAttribute attribute in dicomFile.DataSet)
        {
            Console.WriteLine("Tag: {0}, Value: {1}", attribute.Tag.Name, attribute.ToString());
        }

        int bitsPerPixel = dicomFile.DataSet.GetAttribute(DicomTags.BitsStored).GetInt32(0, 0);
        int width = dicomFile.DataSet.GetAttribute(DicomTags.Columns).GetInt32(0, 0);
        int height = dicomFile.DataSet.GetAttribute(DicomTags.Rows).GetInt32(0, 0); 
        int stride = width * 2;
        byte[] bitmapBuffer = (byte[])dicomFile.DataSet.GetAttribute(DicomTags.PixelData).Values;


        BitmapSource bitmapSource = BitmapImage.Create(width, height, 96, 96, System.Windows.Media.PixelFormats.Gray16, null, bitmapBuffer, stride);

        image1.Source = bitmapSource; 


    }code here

我在最后一行收到错误

image1.Source = bitmapSource;

该错误指出

错误 1 ​​当前上下文中不存在名称“image1”。

然而,在做了一些研究之后,我读到我必须创建一个在 XAML 中定义的图像控件,我将在该页面上显示 Dicom 图像。因此它应该是这种格式

enter <Window x:Class="WpfImageTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"> 
<Grid> 
<Image Name="image1" />
</Grid>code 
</Window> 

后面有代码

    enter public MainWindow()
{
    InitializeComponent();

    // Create source
    BitmapImage myBitmapImage = new BitmapImage();

    // BitmapImage.UriSource must be in a BeginInit/EndInit block
    myBitmapImage.BeginInit();
    myBitmapImage.UriSource = new Uri(@"E:\Pictures\avatar.jpg");
    myBitmapImage.DecodePixelWidth = 200;
    myBitmapImage.EndInit();

    //set image source
    image1.Source = myBitmapImage;

}code here

我的问题是如何将它合并到我的项目中,我添加了 XAML 作为参考,现在我不知道如何进一步进行。我是否将此代码合并到我的 cs 文件中或构建一个完整的 cs 文件。我将不胜感激任何信息。我非常感谢你

4

1 回答 1

0

发布为显示格式的答案(两个文件之间)

您的 xaml 和 cs 文件应该是一个类的实现。您的 cs 文件是 MainWindow 类的部分实现

XAML 文件(显示类)(MainWindow.xaml)

<Window x:Class="WindowGrid.MainWindow"
... further things

CS 文件 (MainWindow.xaml.cs)

public partial class MainWindow : Window
于 2013-07-24T07:19:22.603 回答