VS 2012 を使用して xaml ウィンドウに wpf フォームが表示されなくなったため (メインの .cs フォームの上部にコメントを追加した後)、C# Express 2010 に戻りました。
xaml とコードをコピーして、新しいプロジェクトに貼り付けました。
ただし、次のようなエラー メッセージが表示されます。
*「duckbilledPlatypusInfoMailer_Express.MainWindow」には「MainWindow_Loaded」の定義が含まれておらず、タイプ「duckbilledPlatypusInfoMailer_Express.MainWindow」の最初の引数を受け入れる拡張メソッド「MainWindow_Loaded」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)*
と:
「InitializeComponent」という名前は現在のコンテキストに存在しません
ラベルとボタンの 2 つのコントロールについて同じエラー メッセージが表示されます (DatePicker ではありません)。
したがって、VC#2010 に関する限り、イベント ハンドラーと 3 つのコントロールのうちの 2 つ、および 'InitializeComponent' が不可視のマントでレンダリングされています...???
これが私のxamlとコードです(最小限なので、すべてをp [a、o] stingします):
XAML:
<Window x:Class="duckbilledPlatypusInfoMailer_Express.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Duckbilled Platypus Info Mailer" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen" MinHeight="350" MinWidth="525" Loaded="MainWindow_Loaded" >
<StackPanel>
<StackPanel Orientation="Horizontal">
<Button x:Name="btnSelectPDFFile" HorizontalAlignment="Left" Padding="4" Margin="4" Width="120" Click="btnSelectPDFFile_Click" IsDefault="True">Select PDF File
</Button>
<Label x:Name="lblPlatypusSheetFile" Margin="4" >[Selected File]</Label>
</StackPanel>
<StackPanel Orientation="Horizontal">
<DatePicker ></DatePicker>
</StackPanel>
</StackPanel>
</Window>
コード:
using System;
using System.Windows;
using duckbilledPlatypusInfoMailer;
namespace PlatypusInfo_Express
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
btnSelectPDFFile.Focus();
}
private void btnSelectPDFFile_Click(object sender, RoutedEventArgs e)
{
var dlg = new Microsoft.Win32.OpenFileDialog
{
InitialDirectory = @"C:\Scrooge\McDuckbilledPlatypus\",
DefaultExt = ".pdf",
Filter = "Platypus Data Sheets (sa*.pdf)|sa*.pdf"
};
bool? result = dlg.ShowDialog();
if (result == true)
{
string pdfFilename = dlg.FileName;
// Show just the file name, without the path
string pdfFileNameOnly = System.IO.Path.GetFileName(pdfFilename);
lblReviewSheetFile.Content = pdfFileNameOnly;
string textFilename = String.Format(@"C:\Scrooge\McDuckbilledPlatypus\{0}.txt", pdfFileNameOnly);
var pdfParser = new PDFParser();
if (pdfParser.ExtractText(pdfFilename, textFilename))
{
System.Diagnostics.Process.Start(textFilename);
}
else
{
MessageBox.Show("There was a boo-boo, Yogi!");
}
}
}
}
}
ところで、必要なサードパーティ ファイル (PDFParser.cs) と 2 つの必要な参照をソリューションに追加しました。
注: xaml でイベント ハンドラーを右クリックすると、cs ファイル内のイベント ハンドラーに移動します。存在しない、または見つからないと言うのはなぜですか?
アップデート
WPF デザイナーで表示されるエラーの最初の部分を次に示します。
System.NotSupportedException ネットワーク上の場所からアセンブリを読み込もうとしたため、以前のバージョンの .NET Framework ではアセンブリがサンドボックス化されていました。このリリースの .NET Framework では既定で CAS ポリシーが有効になっていないため、この負荷は危険な場合があります。この読み込みがアセンブリをサンドボックス化することを意図していない場合は、loadFromRemoteSources スイッチを有効にしてください。http://go.microsoft.com/fwlink/?LinkId=155569を参照してください。詳細については。Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.WaitForCompletion (NestedCallContext ネストされたCallContext、BlockingCall 呼び出し、WaitHandle timeoutSignal) で Microsoft.Expression.DesignHost.Isolation.Remoting.STAMarshaler.MarshalOut (アクション アクション、Int32 targetApartmentId、WaitHandle は中止されました、WaitHandle timeoutSignal ) Microsoft.Expression.DesignHost.Isolation.Remoting.ThreadMarshaler.MarshalOut[TValue] (RemoteHandle 1 targetObject, Action action)
at Microsoft.Expression.DesignHost.Isolation.Remoting.ThreadMarshaler.MarshalOut[TResult,TValue](RemoteHandle
1 targetObject, Func`2 func) で