WPF インタビューのトップ 70 の質問と回答 (2024)

ここでは、新人だけでなく経験豊富な候補者も夢の仕事に就くための WPF 面接の質問と回答を紹介します。


1.WPFとは何ですか?

WPF は、Microsoft Windows の最新のプレゼンテーション API です。 2Dおよび3Dグラフィックエンジンです。 その機能には以下が含まれます:-

  • すべての一般的なユーザー コントロール。 たとえば、チェックボックス、ボタン、スライダーなどです。
  • フローおよび固定フォーマットのドキュメントをサポート
  • Flash のすべての機能と HTML
  • データバインディング
  • マルチメディア
  • アニメーション

無料 PDF ダウンロード: WPF インタビューの質問と回答


2. WPF でサポートされているドキュメントの種類は何ですか?

Windows Presentation Foundation (WPF) でサポートされるドキュメントには、フロー形式ドキュメントと固定形式ドキュメントの XNUMX 種類があります。 フロー形式のドキュメントは画面サイズに合わせてコンテンツを変更しますが、固定形式のドキュメントは画面サイズに関係なくコンテンツを表示します。


3. 3D の操作に必要な名前空間に名前を付けます。

3D で作業するために必要な名前空間は System.Windows.Media.Medi3D です。


4. WPF が DirectX に代わったと言うのは正しいですか?

いいえ、WPF が DirectX を置き換えることはできません。 WPF を使用して、美しいグラフィックスを備えたゲームを作成することはできません。 WPF は、DirectX ではなく、Windows フォームの代替となることを目的としています。


5. 依存関係プロパティとは何ですか?

特定のクラスに属しているが、別のクラスにも使用できるプロパティは、依存関係プロパティと呼ばれます。

WPF 面接の質問
WPF 面接の質問

6. StatusBar のサイズを比例的に大きくするにはどうすればよいですか?

StatusBar の ItemsPanel 属性をグリッドで無効にすることによって。 グリッドの列を適切に構成して、目的の結果を得ることができます。


7. WPF の Freezable オブジェクトとは何ですか?

状態がロックダウンされ、変更不可能になったオブジェクトは、フリーズ可能オブジェクトとして知られています。 このようなオブジェクトのパフォーマンスは向上します。 スレッド間で共有する必要がある場合にも、より安全です。


8. Adob​​e Flash よりも WPF が推奨されるのはなぜですか?

WPF はより新しいテクノロジであるため、最新の開発ツールが備わっています。 より幅広いプログラミング言語をサポートし、堅牢なコントロールを再利用します。


9. Silverlight は WPF ブラウザ アプリケーションとどのように異なりますか?

主な違いの XNUMX つは、クライアント マシン上で WPF ブラウザ アプリケーションを実行するには .NET Framework が必要であることです。 ただし、Silverlight はプラグインのみを使用して実行されます。 もう XNUMX つの違いは、WPF で作成されたアプリケーションが依存することです。 OS .NET Framework は Windows 上でのみ動作するためです。 一方、Silverlight プラグインは、Windows 以外の OS にもインストールできます。


10.DependencyObject に存在するメソッドに名前を付けます。

これには次の XNUMX つのオブジェクトがあります。

  • 値の設定
  • クリア値
  • GetValue

11. PRISM について書きます。

PRISM は、WPF、Silverlight、または Windows Phone 用の複雑なアプリケーションを作成するためのフレームワークです。 PRISM は、MVVM、IC、コマンド パターン、DI、および懸念の分離を利用して疎結合を実現します。


12. WPF アプリケーションで Windows フォームを使用することはできますか?

はい、Windows フォームを WPF で使用できます。 Windows フォームは WPF ポップとして表示できます。 この Windows フォームのコントロールは、プリインストールされている WindowsFormsHost コントロールの機能を利用することで、WPF ページ内の WPF コントロール以外に配置できます。

Windows Presentation Foundation(WPF)
Windows Presentation Foundation(WPF)

13. CustomControl について簡単に説明します。

CustomControl は、既存のコントロールの機能を拡張します。 これは、Themes/Generic.xaml のデフォルト スタイルとコード ファイルで構成されます。 これはコントロール ライブラリを作成する最良の方法であり、スタイルやテンプレートを設定することもできます。


14. WPF で使用される一般的なアセンブリに名前を付けますか?

  • プレゼンテーション財団
  • Windowsベースの
  • プレゼンテーションコア

15. WPF でパス アニメーションを定義する

パス アニメーションは、アニメーション化されたオブジェクトがパス ジオメトリで設定されたパスをたどるアニメーションの一種です。


16. WPF アプリケーションは XAML なしで作成できますか?

はい、WPF で XAML を使用するかどうかは選択の問題であるため、XAML を使用せずに WPF アプリケーションを作成できます。


 17. WPF のウィンドウの種類は何ですか?

WPF には XNUMX 種類のウィンドウがあります。

  • 通常のウィンドウ
  • ページウィンドウ
  • ナビゲーションウィンドウ

18. ListBox 内の要素はどのように並べ替えることができますか?

並べ替えは、ItemsCollection オブジェクトのプロパティを使用して実行できます。 ItemsCollection には、System.ComponentModel.SortDescription インスタンスを保持する属性 SortDescriptions が含まれています。 すべての SortDescription インスタンスは、要素の並べ替え方法を定義し、並べ替えが降順か昇順かを示します。

たとえば、次のコードは、単語数プロパティに基づいて ContentControl の要素を並べ替えます。

myItemsControl.Items.SortDescriptions.Add(new SortDescription(“WordCount”, ListSortDirection.Descending));


19. MVVM は MVC とどう違うのですか?

MVC は Model-View Controller の略で、.MVVM は Model-View ViewModel の略です。

MVVM では、コントローラーの代わりに View Model が使用されます。 このビューモデルは UI レイヤーの下に存在します。 ビューに必要なコマンド オブジェクトとデータが明らかになります。 これは、ビューがアクションとデータを取得するコンテナ オブジェクトのように機能します。


20. WPF の Routed イベントについて説明します。

イベントを呼び出した単一のオブジェクトではなく、要素ツリー内に存在する複数のリスナーのハンドラーを呼び出すことができるイベントは、Routed イベントとして知られています。


21. System.Windows.Media.Visual dll は WPF でどのように利用されますか?

これは、カスタム ユーザー インターフェイスを作成する要件が発生するたびに使用されます。 これは、オブジェクトを作成するための指示を与える描画オブジェクトです。 この指示には、図面の不透明度などが含まれます。 Visual クラスは、WPF マネージ クラスと MilCore.dll の機能の橋渡しも行います。


22. WPF のさまざまなレイアウト パネルとは何ですか?

彼らは以下のとおりです。

  • スタック パネル
  • グリッドパネル
  • キャンバスパネル
  • ドックパネル
  • ラップパネル

23. WPF の重要なサブシステムに名前を付ける

主要なサブシステムは次のとおりです。

  • Windows.コントロール.コントロール
  • Windows.DependancyObject
  • Windows.FrameworkElement
  • Windows.メディア.ビジュアル
  • オブジェクト
  • Threading.DispatcherObject
  • Windows.UIElements

24. WPF における BAML とは何を意味しますか?

BAML は、Binary Application Markup Language の略称です。 これは、トークン化され、解析され、バイナリ形式に変更された XAML に他なりません。 BAML は圧縮された宣言型言語であり、XAML よりも速く読み込まれて解析されます。


25. WPF のページ コントロールとウィンドウ コントロールの違いは何ですか?

基本的な違いは、ウィンドウ コントロールが Windows アプリケーションを管理するのに対し、ページ コントロールはホストされたブラウザ アプリケーションを管理することです。 また、ウィンドウ コントロールにはページ コントロールが含まれる場合がありますが、その逆は起こりません。


26. WPF の添付プロパティとは何ですか?

添付プロパティは基本的に、ランダムなオブジェクトに値を添付できるようにする依存関係プロパティです。


27. INotifyPropertyChanged インターフェイスとは何ですか?

InotifyPropertyChanged は、プロパティの値が変更された場合に、クライアント (通常はバインドしているクライアント) に通知します。 これには PropertyChanged というイベントがあり、Model オブジェクトのプロパティが変更されるたびに発生します。


28. MVVM モデルにおけるイベントとコマンドの基本的な違いは何ですか?

コマンドはより強力であり、イベントの代わりに使用すると有利です。 アクションはイベントのソースと深く関係しているため、イベントを簡単に再利用することはできません。 しかし、コマンドを使用すると、複数のアクションを XNUMX か所で効率的に管理し、要件に応じて再利用できるようになります。


29. 現在表示されているツールチップを強制的に閉じる方法は何ですか?

ツールチップの IsOpen プロパティを false に設定することで閉じることができます。


30. DynamicResource と StaticResource の違いを書きます。

最も基本的な違いは、StaticResource はリソースを XNUMX 回だけ評価するのに対し、DynamicResource はリソースが必要になるたびに評価することです。 この理由により、DyanamicResource はシステムに負荷をかけますが、ページやウィンドウの読み込みが速くなります。


31. MVVMパターンについて説明します。

MVVM パターンは、UI コードを 3 つの基本部分に分割します。

  • モデル - これは、データベースから受信したデータを含むクラスのセットを表します。
  • 意見 - データの視覚的表現と一致するコードです。
  • ビューモデル – これは、ビューとモデルを結び付けるレイヤーです。 このデータを分かりやすく表示します。 また、View がアプリケーションとどのように対話するかを制御します。

32. WPF ではなぜレイアウト パネルが必要ですか?

レイアウト パネルは、コントロールがさまざまなサイズまたはさまざまなフォント サイズの画面に適合するようにするために必要です。 固定ピクセル座標にコントロールを配置すると、このモデルは別の環境に移動すると失敗します。 このため、レイアウト パネルが必要になります。


33. UserControl について簡単に書きます。

UserControl は、既存のコントロールを単一の再利用可能なグループにラップします。 これには、XAML ファイルとコードが含まれています。 UserControl はスタイルまたはテンプレート化できません。


34. Freezable オブジェクトが Frozen かどうかを確認する方法は何ですか?

オブジェクトの「IsFrozen」プロパティを使用して、フリーズ可能なオブジェクトがフリーズされているかどうかを判断できます。


35. WPF の測定単位は何ですか?

すべての測定は、デバイスに依存しないピクセル、つまり論理ピクセルで行われます。 1 ピクセルは 96/XNUMX インチです。 これらの論理ピクセルは常に double として言及され、これにより小数値も持つことができます。


36. 装飾品とは何ですか?

これらは、ユーザーに視覚的な手がかりを提供する特別な種類の FrameworkElement です。 また、要素にハンドルを追加したり、コントロールの状態に関する情報を提供したりするためにも使用されます。 装飾者は UIElement にバインドされ、装飾された要素の上にあるサーフェス上にレンダリングされます。 このサーフェスは AdornerLayer と呼ばれます。 装飾は、ほとんどの場合、境界のある要素に対して相対的に配置されます。


37. シリアル化について説明しますか?

これは、オブジェクトの状態をバイトのストリームに変換するプロセスです。


38. MDI は WPF でサポートされていますか?

MDI は WPF ではサポートされていません。 UserControl を使用すると、MDI と同じ機能を提供できます。


39.XBAPとは何ですか?

XBAP は、XAML Browser Application の略称です。 これにより、WPF アプリケーションを Web ブラウザー内で実行できるようになります。 クライアント マシンへの .NET Framework のインストールは、WPF アプリケーションを実行するための前提条件です。 ただし、ホストされたアプリケーションにはクライアントのマシンへの完全なアクセス許可が与えられず、サンドボックス環境で実行されます。 WPF を使用すると、ブラウザーで直接実行されるこのようなアプリケーションも作成できます。 これらのアプリケーションは XBAP と呼ばれます。


40. WPF と Silverlight はどのような点で似ていますか?

Silverlight と WPF は、どちらも XAML を使用し、同じコード、構文、ライブラリを共有するという意味で似ています。


41. 無効な要素の上にマウスを置いたときにツールヒントを表示するにはどうすればよいですか?

この目的のために、ShowOnDisabled プロパティを使用できます。 これは ToolTipService クラスに属します。


42. ListBox をスムーズにスクロールするにはどうすればよいですか?

ListBox は、デフォルトで項目ごとにスクロールするように設定されています。 これは各要素の高さやスクロール動作に依存するため、粗い印象になります。 より良い方法は、項目の高さに関係なく数ピクセルずつ項目を移動するようにスクロール アクションを設定することです。 これを行うには、ScrollViewer.CanContentScroll プロパティを「false」に設定します。 ただし、これにより、ListBox は仮想化プロパティを失います。


43. WPF アプリケーションの実行はどこから始まりますか?

Visual Studio で作成された WPF アプリケーションは、Main メソッドなしで実行されます。 これは、アプリケーションが XAML からコンパイルされる場合に特殊な場合があるためです。 つまり、Visual Studio は ApplicationDefinition のビルド アクションを XAML ファイルに添付します。 これにより、Main メソッドが自動生成されます。


44. WPFを使用してWindowsサービスを作成できますか?

いいえ、WPF を使用して Windows サービスを作成することはできません。 WPF はプレゼンテーション言語です。 Windows サービスには、一部の GUI 関連機能を実行するための特定のアクセス許可が必要です。 したがって、必要な権限を取得できない場合は、エラーが発生します。


45. WPF の Routed イベントにはどのような種類がありますか?

WPF には XNUMX 種類の Routed イベントがあります。 彼らです:

  • 直接 - このイベントは、そのイベントが発生した要素によってのみ発生させることができます。
  • トンネリング – このイベントは、最初にそのイベントが発生した要素によって発生し、次にビジュアル ツリー内の連続する各コンテナによって発生します。
  • バブリング– このイベントは、最初にビジュアル ツリーの最上位のコンテナによって発生し、次に、発生元の要素に到達するまで、最上位のコンテナの下にある連続する各コンテナによって発生します。

46. アイテムを ComboBoxItem でラップする方が良いのはなぜですか?

IsSelected や IsHighlighted などの重要なプロパティがいくつかあり、また、Selected や Unselected などの必要なイベントもいくつかあります。 ComboBoxItem はコンテンツ コントロールであるため、単純な文字列を ComboBox に追加する場合に非常に便利です。


47. ItemsControl 内の項目のオートメーション ID を取得するにはどうすればよいですか?

これを行う最善の方法は、デフォルトで自動化の目的で使用されるため、Name プロパティを設定することです。 ただし、要素に名前以外の ID を与える必要がある場合は、必要に応じて AutomationProperties.AutomationID プロパティを設定できます。


48. WPF アプリケーションでコマンドライン引数を取得するにはどうすればよいですか?

これに最も推奨される方法は、アプリケーション内の任意の時点で System.Environment.GetCommandLineArgs を呼び出すことです。


49. 任意のコンテンツを含むクラスの名前を述べます。

コンテンツ管理

ヘッダー付きコンテンツ コントロール

アイテムコントロール

HeaderedItems コントロール


50.「ポップアップ」コントロールと「サム」コントロールを持つ名前空間はどれですか?

名前空間 system.windows.controls.primitives には、「Popup」コントロールと「Thumb」コントロールがあります。


51. XAML とは何ですか? 違いは何ですか XML そしてXAMLは?

XAML は eXtensible Application Markup Language の略です。 これは、.NET オブジェクトをインスタンス化するために使用される言語です。 によって開発された言語です Microsoft 次世代アプリケーション用のユーザー インターフェイスを作成します。

XML はデータを保存したり、保存されたデータを操作したりするために設計されていますが、XAML は .NET プログラミングに使用される XML の拡張バージョンです。


52. XAML を使用する利点について言及しますか?

XAML を使用する利点は次のとおりです。

  • XAML コードは読みやすく、短い
  • デザイナーのコードとロジックの分離
  • グラフィック デザインに使用される式ブレンドなどのツールには、ソースとして XAML が必要です
  • デザイナーと開発者の役割を明確に分離します

53. XAML で「Hello World」を表示するにはどうコーディングすればよいですか?

「Hello World」を表示します。

<page xmlns= '' ''>

<TextBlock>

Hello, World!

</TextBlock>

</Page>

54. XAMLではグラフィックコンポーネントはどのように指定されますか?

XAML では、グラフィック コンポーネントは、属性を持つ開始タグまたは終了タグによって指定されます。

たとえば、

  • 内容を含むタグ


  • 内容のないタグ

< ボタン/>


55. XAMLの属性構文とは何ですか?

XAML では、属性構文は要素の属性を宣言することによって、プロパティの値を設定するか、イベントのイベント ハンドラーに名前を付けます。 属性値は XNUMX つの引用符 (") で囲む必要があります。

たとえば、

< Button Background = “Black” Foreground “Red” Content = “This is an operating button”/>

XAML


56. コンテンツ プロパティ XAML について説明しますか?

XAML は、クラスがそのプロパティの XNUMX つを XAML プロパティとして割り当てることができる言語機能を表します。


57. XAML のマークアップ拡張機能とは何ですか?

マークアップ拡張機能は、実行時にプロパティを解決するために使用される XAML のプレースホルダーです。 マークアップ拡張機能を使用すると、XAML を拡張でき、属性構文を使用して、XAML で設定できるプロパティを設定することもできます。マークアップ拡張機能の目的は、文字列を処理してオブジェクトを返すことです。 標準のマークアップ拡張子の一部には、xNull、x があります。 配列、:静的リソースと動的リソース。


58. XAML 要素の一般的な XNUMX 種類は何ですか?

一般的な XAML 要素の XNUMX 種類は次のとおりです。

  • ルート要素
  • パネル要素
  • 制御要素
  • 幾何学的な要素

59. X: プレフィックスは XAML で何を示しますか?

X: プレフィックスは、テンプレート内の XAML 名前空間をマップするために使用されます。


60. XAML 言語で使用されるさまざまな X: プレフィックスは何ですか?

  • x: キー à リソース ディクショナリ内のリソースごとに一意のキーを設定します
  • x: Classà コードを提供するクラスの CLR (Common Language Runtime) 名前空間とクラス名を指定します。
  • x: 名前 à オブジェクト要素が処理された後に実行時コード内に存在するインスタンスの実行時オブジェクト名を指定します。
  • x: 静的 à 静的な値を返す参照を有効にします。それ以外の場合は XAML 互換プロパティです。
  • x: Type à 型名に基づいて Type 参照を構築します

61. プロパティ属性をマークアップ拡張子ではなくリテラル文字列として設定するにはどうすればよいですか?

マークアップの拡張を避けるには、次のような空の中括弧のペアを使用する必要があります。

Content = “{} {これはマークアップ拡張機能ではありません}”/>


62. XAML でオブジェクト要素が持つことができる子の種類は何ですか?

オブジェクト要素が持つことができる子は XNUMX 種類あります

  • コレクションアイテム
  • content プロパティの値
  • object要素に型変換できる値

63. 型コンバーターとは何ですか?

型コンバーターは、マークアップ拡張機能が使用されていない場合に、文字列を適切な値の型に変換するのに役立ちます。 型コンバーターは、xaml 目的で文字列との間の変換を行うための XNUMX つのメンバーを定義します。

  • 変換できます
  • CanConvertFrom
  • に変換
  • 変換元

64. XAML のオブジェクト要素の構文について説明しますか?

XML 要素を宣言して CLR クラスまたは構造をインスタンス化するには、XAML マークアップ構文が使用されます。 この構文は、オブジェクト要素構文と呼ばれます。


65. XAML でオブジェクトを宣言するにはどのような方法がありますか?

XAML でオブジェクトを宣言するには、次の XNUMX つの方法があります。

  • オブジェクト要素構文を直接使用する: この構文は、プロパティ値を設定するルート オブジェクトまたはネストされたオブジェクトを宣言するために使用されます。
  • 属性構文を使用して間接的に: この構文は、オブジェクトの作成方法に関する指示を含むインライン文字列値を使用します。 プロパティの値を新しく作成された参照に設定するために、XAML パーサーは次の文字列を使用します。
  • マークアップ拡張機能の使用

66. XAML ドキュメントのルート要素には何を含めるべきですか?

XAML ドキュメントでは、ルート要素は特定の要素のみで構成され、これらの要素は Window、Canvas、またはパネルです。


67. XAML によるデータ バインディングとは何ですか?

データ バインディングは、データを表示および操作する簡単な方法を提供します。 例では、XAML でデータ バインディングを行う方法を示します。 XAML でのバインドは、{binding….} 構文を使用して行われます。


68. 実行時と設計時にさまざまなデータを表示する方法を説明してください。

  • 実行時およびデザイン時にデータを表示する XNUMX つの方法は、XAML でデータを宣言することです。
  • これを行うもう XNUMX つの方法は、デザイナー XML 名前空間のさまざまなデータ属性を使用して XAML で宣言することです。 通常、この名前空間は ad: 接頭辞を付けて宣言されます。

xmlns: d= http://schemas.microsoft.com/expression/blend/2008


69. XAML の function x: Key ディレクティブとは何ですか?

X: キーは、XAML 定義の辞書内で作成および参照される要素を一意に識別します。 XAML オブジェクト要素に x: Key 値を追加すると、リソース ディクショナリ内のリソースを識別でき、これが最も一般的な識別方法です。


70. プロパティ要素構文の用途を説明してください。

プロパティ要素の構文を使用すると、parent.propertyName の形式で名前を付けて子要素を追加できます。


71. XAML で使用されるカスタム クラスはどのように定義できますか?

カスタム クラスは XNUMX つの方法で使用されます

  • プライマリ Windows Presentation Foundation (WPF) アプリケーションを生成するコード、または背後のコード内で
  • クラス ライブラリとして使用される実行可能ファイルや DLL など、クラスとしての別のアセンブリ内

72.Xaml 名前空間とは何ですか?

ネームスペースは、一意の識別子またはシンボルの論理グループを保持するために使用される環境または抽象コンテナとして定義できます。

これらの面接の質問は、あなたの活力(口頭)にも役立ちます

シェアする

1つのコメント

  1. アバター Manojさん 言います:

    トンネルとバブルのイベント定義が入れ替わっているようですので、再確認してください。
    間違っていたら教えてください。

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *