0

ClearCanvas を使用して C# で dicom イメージを開くことを扱う C# でこのプロジェクトに取り組んでいますが、修正できないエラーが再発しています。私のコードは次のとおりです

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' は現在のコンテキストに存在しません。

ただし、いくつかの調査を行った後、Dicom 画像を表示するページの XAML で定義された画像コントロールを作成する必要があることを読みました。したがって、この形式にする必要があります

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

フォーマットを表示するための回答として投稿されました(2つのファイル間)

xaml および cs ファイルは、1 つのクラスの実装である必要があります。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 に答える