72 nejlepších otázek a odpovědí na rozhovor WPF (2025)
Zde jsou otázky a odpovědi na pohovor WPF pro začátečníky i zkušené kandidáty, aby získali svou vysněnou práci.
1. Co je WPF?
WPF je nejnovější prezentační API od Microsoft Windows. Jedná se o 2D a 3D grafický engine. Mezi jeho schopnosti patří: -
- Všechny běžné uživatelské ovládací prvky. Například zaškrtávací políčka, tlačítka, posuvníky atd.
- Podporuje tok a formát dokumentů
- všechny funkce Flash a HTML
- Datová vazba
- multimédia
- Animace
Zdarma ke stažení PDF: Otázky a odpovědi k rozhovoru WPF
2. Jaké typy dokumentů podporuje WPF?
Dva typy dokumentů podporovaných službou Windows Presentation Foundation (WPF) jsou formát Flow a dokument s pevným formátem. Dokument ve formátu Flow upravuje obsah tak, aby odpovídal velikosti obrazovky, zatímco dokument s pevným formátem zobrazuje obsah bez ohledu na velikost obrazovky.
3. Pojmenujte jmenný prostor potřebný pro práci s 3D.
Jmenný prostor potřebný pro práci ve 3D je System.Windows.Media.Medi3D.
4. Je správné říkat, že WPF nahradil DirectX?
Ne, WPF nikdy nemůže nahradit DirectX. WPF nelze použít k vytváření her s ohromující grafikou. WPF má být náhradou za formulář Windows, nikoli DirectX.
5. Co jsou vlastnosti závislosti?
Vlastnosti, které patří do určité třídy, ale mohou být použity pro jinou, se nazývají vlastnosti závislosti.
6. Jak lze úměrně zvětšit velikost StatusBar?
Přepsáním atributu ItemsPanel StatusBar mřížkou. Sloupce mřížky lze vhodně nakonfigurovat tak, aby bylo dosaženo požadovaného výsledku.
7. Co jsou objekty Freezable ve WPF?
Objekt, jehož stav je uzamčen, takže se stává neměnným, je známý jako zmrazitelný objekt. Takové objekty fungují lépe. Je také bezpečnější, pokud je vyžadováno jejich sdílení mezi vlákny.
8. Proč by měl být WPF preferován před Adobe Flash?
WPF je novější technologie, a proto má nejnovější vývojové nástroje. Podporuje širší škálu programovacích jazyků a má robustní opětovné použití ovládání.
9. Jak se Silverlight liší od aplikace prohlížeče WPF?
Jedním z hlavních rozdílů je, že pro spouštění aplikací prohlížeče WPF na klientském počítači je vyžadován .NET framework. Ale Silverlight běží pouze pomocí plug-inu. Dalším rozdílem je, že aplikace vytvořené ve WPF závisí na OS protože .NET Framework běží pouze na Windows. Na druhou stranu lze plug-in Silverlight nainstalovat i na ty OS, které nejsou Windows.
10. Pojmenujte metody přítomné v DependencyObject.
Má tři předměty, a to:
- SetValue
- ClearValue
- GetValue
11. Napište o PRISM.
PRISM je framework pro tvorbu komplexních aplikací pro WPF, Silverlight nebo Windows Phone. PRISM využívá MVVM, IC, Command Patterns, DI a Separation of Concerns k uvolnění spojení.
12. Je možné použít Windows Forms v aplikaci WPF?
Ano, formulář pro Windows lze použít ve WPF. Formulář Windows se může objevit jako WPF pop. Ovládací prvky tohoto formuláře okna lze umístit vedle ovládacích prvků WPF na stránku WPF s využitím funkcí ovládacího prvku WindowsFormsHost, který je předinstalován.
13. Stručně popište CustomControl.
CustomControl rozšiřuje funkce stávajících ovládacích prvků. Skládá se z výchozího stylu v Themes/Generic.xaml a souboru kódu. Je to nejlepší způsob, jak vytvořit knihovnu ovládacích prvků a lze ji také stylovat nebo šablonovat.
14. Vyjmenujte běžné sestavy používané ve WPF?
- PresentationFoundation
- Windows Základna
- PresentaionCore
15. Definujte animace cesty ve WPF
Animace cesty je typ animace, ve které animovaný objekt sleduje cestu nastavenou geometrií cesty.
16. Lze WPF aplikace vytvářet bez XAML?
Ano WPF aplikace lze vytvářet bez XAML, protože použití XAML ve WPF je věcí volby.
17. Jaké jsou typy oken ve WPF?
WPF má tři typy oken:
- Normální okno
- Okno stránky
- Navigace v okně
18. Jak lze třídit prvky v ListBoxu?
Řazení lze provést pomocí vlastnosti objektu ItemsCollection. ItemsCollection obsahuje atribut SortDescriptions, který obsahuje instance System.ComponentModel.SortDescription. Každá instance SortDescription definuje, jak by měly být prvky seřazeny, a označuje, zda je řazení sestupné nebo vzestupné.
Tento kód například třídí prvky ContentControl na základě jejich vlastnosti počtu slov:
myItemsControl.Items.SortDescriptions.Add(new SortDescription("WordCount", ListSortDirection.Descending));
19. Jak se MVVM liší od MVC?
MVC znamená Model-View Controller a. MVVM znamená Model-View ViewModel.
V MVVM se místo řadiče používá View Model. Tento model zobrazení se nachází pod vrstvou uživatelského rozhraní. Odhaluje příkazové objekty a data, která pohled vyžaduje. Funguje jako kontejnerový objekt, ze kterého pohled získává své akce a data.
20. Vysvětlete směrované události ve WPF.
Událost, která může vyvolat obslužné rutiny na více než jednom posluchači přítomném ve stromu prvků, namísto jediného objektu, který událost vyvolal, se nazývá událost Routed.
21. Jak se System.Windows.Media.Visual dll využívá ve WPF?
Používá se vždy, když vznikne požadavek na vytvoření vlastního uživatelského rozhraní. Jedná se o kreslicí objekt, který dává návod na výrobu objektu. Tyto pokyny zahrnují neprůhlednost atd. výkresu. Třída Visual také překlenuje funkce tříd spravovaných WPF a MilCore.dll.
22. Jaké jsou různé panely rozložení ve WPF?
Jedná se o:
- Panel zásobníku
- Panel mřížky
- Panel plátna
- Dokovací panel
- Zabalit panel
23. Vyjmenujte důležité subsystémy ve WPF
Hlavní subsystémy jsou:
- Windows.Controls.Control
- Windows.DependancyObject
- Windows.FrameworkElement
- Windows.Media.Visuals
- Objekt
- Threading.DispatcherObject
- Windows.UIElements
24. Co znamená BAML ve WPF?
BAML je zkratka pro Binary Application Markup Language. Není to nic jiného než XAML, který byl tokenizován, analyzován a změněn do binární podoby. BAML je komprimovaný deklarativní jazyk, který se načítá a analyzuje rychleji než XAML.
25. Jaký je rozdíl mezi ovládáním stránky a okna ve WPF?
Základní rozdíl je v tom, že ovládání oken předsedá aplikacím Windows, zatímco ovládání stránky předsedá hostovaným aplikacím prohlížeče. Ovládací prvek okna také může obsahovat ovládací prvek stránky, ale nemůže dojít k opačnému postupu.
26. Co jsou připojené vlastnosti ve WPF?
Připojené vlastnosti jsou v podstatě vlastnosti závislostí, které umožňují připojení hodnoty k libovolnému náhodnému objektu.
27. Co je rozhraní INotifyPropertyChanged?
InotifyPropertyChanged upozorní klienty, obecně ty, kteří jsou závazní, pokud se změní hodnota nemovitosti. Má událost nazvanou PropertyChanged, která se vyvolá pokaždé, když se změní vlastnost objektu Model.
28. Jaký je základní rozdíl mezi událostmi a příkazy v modelu MVVM?
Příkazy jsou výkonnější a je výhodné je používat místo událostí. Akce jsou hluboce spjaty se zdrojem události, a proto je nelze snadno znovu použít. Ale příkazy umožňují efektivně udržovat více akcí na jednom místě a poté je znovu použít podle našich požadavků.
29. Jakým způsobem lze vynutit uzavření ToolTipu, který je aktuálně viditelný?
Lze jej zavřít nastavením vlastnosti IsOpen popisku na hodnotu false.
30. Napište rozdíly mezi DynamicResource a StaticResource.
Nejzákladnější rozdíl je v tom, že StaticResource vyhodnocuje zdroj pouze jednou, ale DynamicResource jej vyhodnocuje pokaždé, když je zdroj vyžadován. Z tohoto důvodu je DynamicResource náročný na systém, ale stránky nebo okna se načítají rychleji
31. Vysvětlete vzor MVVM.
Vzor MVVM rozděluje kód uživatelského rozhraní na 3 základní části:
- Modelka - Představuje množinu tříd, které obsahují data získaná z databází.
- Pohled - Je to kód, který souhlasí s vizuální reprezentací dat.
- ViewModel – Je to vrstva, která spojuje pohled a model dohromady. Tato data prezentuje způsobem, který je snadno pochopitelný. Také řídí, jak View interaguje s aplikací.
32. Proč jsou ve WPF potřebné panely rozložení?
Panely rozvržení jsou potřebné, aby se ovládací prvky vešly na obrazovky různých velikostí nebo s různými velikostmi písma. Pokud uspořádáme ovládací prvky na pevných souřadnicích pixelů, pak tento model při přesunutí do jiného prostředí selže. Z tohoto důvodu jsou nutné panely Layout.
33. Stručně napište o UserControl.
UserControl zabalí existující ovládací prvky do jedné opakovaně použitelné skupiny. Obsahuje soubor XAML a kód. UserControl nelze vytvořit styl nebo šablonu.
34. Jaký je způsob, jak určit, zda je objekt Freezable zmrazený?
Vlastnost „IsFrozen“ objektu lze použít k určení, zda je zmrazený objekt zmrazen.
35. Jaká je měrná jednotka ve WPF?
Všechna měření se provádějí v pixelech nezávislých na zařízení nebo v logických pixelech. Jeden pixel je 1/96 části palce. Tyto logické pixely jsou vždy uváděny jako dvojité, což jim umožňuje mít také zlomkovou hodnotu.
36. Co je to zdobička?
Jedná se o speciální druh FrameworkElement, který poskytuje uživateli vizuální vodítka. Používají se také k přidávání úchytů k prvkům a poskytují informace o stavu ovládacího prvku. Adornery jsou vázány na UIElement a jsou vykresleny na povrchu, který leží nad prvkem, který je ozdoben. Tento povrch se nazývá AdornerLayer. Ozdoby jsou většinou umístěny relativně k ohraničenému prvku.
37. Vysvětlete serializaci?
Je to proces převodu stavu objektu na proud bajtů.
38. Je MDI podporováno ve WPF?
MDI není podporováno ve WPF. UserControl lze použít k poskytnutí stejné funkce jako MDI.
39. Co je XBAP?
XBAP je zkrácená forma XAML Browser Application. Umožňuje spouštění aplikací WPF ve webových prohlížečích. Instalace .NET frameworku na klientský počítač je předpokladem pro běh aplikací WPF. Hostovaným aplikacím však není udělen úplný přístup ke klientovu počítači a jsou spouštěny v prostředí sandbox. Pomocí WPF lze vytvářet i takové aplikace, které běží přímo v prohlížeči. Tyto aplikace se nazývají XBAP.
40. V jakém smyslu jsou si WPF a Silverlight podobné?
Silverlight a WPF jsou podobné v tom smyslu, že oba používají XAML a sdílejí stejný kód, syntaxi a knihovny.
41. Jak docílit toho, aby se ToolTip zobrazil při najetí myší na zakázaný prvek?
K tomuto účelu lze použít vlastnost ShowOnDisabled. Patří do třídy ToolTipService.
42. Jak lze zajistit, aby ListBox plynule roloval?
ListBox je ve výchozím nastavení nakonfigurován tak, aby posouval položku po položce. Závisí to na výšce každého prvku a pohybu rolování, což dává hrubý pocit. Lepší způsob je nakonfigurovat akci rolování tak, aby se položky posunuly o několik pixelů bez ohledu na jejich výšku. To se provádí nastavením vlastnosti ScrollViewer.CanContentScroll na hodnotu „false“. Tím však ListBox ztratí vlastnost virtualizace.
43. Kde začíná provádění v aplikaci WPF?
Aplikace WPF vytvořené v sadě Visual Studio běží bez hlavní metody. Důvodem je, že aplikace jsou při kompilaci z XAML sestaveny se speciálními případy. To znamená, že Visual Studio připojí k souboru XAML akci Build Action of ApplicationDefinition. Výsledkem je automatické generování hlavní metody.
44. Lze službu Windows vytvořit pomocí WPF?
Ne, služby Windows nelze vytvořit pomocí WPF. WPF je prezentační jazyk. Služby Windows potřebují specifická oprávnění k provádění některých funkcí souvisejících s GUI. Pokud tedy nezíská požadovaná oprávnění, zobrazí chyby.
45. Jaké jsou různé druhy routovaných událostí ve WPF?
Ve WPF existují tři typy routovaných událostí. Oni jsou:
- Přímo - Tato událost může být vyvolána pouze prvkem, ve kterém vznikla.
- Tunelování - Tato událost je nejprve vyvolána prvkem, ve kterém byla vytvořena, a poté je vyvolána každým po sobě jdoucím kontejnerem ve vizuálním stromu.
- bublání – Tato událost je nejprve vyvolána nejvyšším kontejnerem ve vizuálním stromu a poté je vyvolána každým dalším kontejnerem ležícím pod nejvyšším, dokud nedosáhne prvku tam, kde vznikl.
46. Proč je lepší zabalit položky do ComboBoxItem?
Má některé důležité vlastnosti jako IsSelected a IsHighlighted a také některé nezbytné události jako Selected a Unselected. ComboBoxItem je ovládací prvek obsahu a je tedy velmi užitečný pro přidávání jednoduchých řetězců do ComboBoxu.
47. Jak získat Automation ID položek v ItemsControl?
Nejlepší způsob, jak toho dosáhnout, je nastavit vlastnost Name, protože se ve výchozím nastavení používá pro účely automatizace. Pokud však požadujete přidělit prvku ID jiné než jeho jméno, pak lze vlastnost AutomationProperties.AutomationID nastavit podle potřeby.
48. Jak lze v aplikaci WPF získat argumenty příkazového řádku?
Nejvýhodnější metodou je volání System.Environment.GetCommandLineArgs v libovolném náhodném bodě aplikace.
49. Uveďte názvy tříd, které obsahují libovolný obsah.
Řízení obsahu
Řízení obsahu záhlaví
Ovládání položek
HeaderedItems Control
50. Který NameSpace má ovládací prvky „Popup“ a „Thumb“?
Jmenný prostor system.windows.controls.primitives má ovládací prvky 'Popup' a 'Thumb'.
51. Vysvětlete, co je XAML? Jaký je rozdíl mezi XML a XAML?
XAML je zkratka pro eXtensible Application Markup Language (eXtensible Application Markup Language). Je to jazyk používaný k vytváření instancí objektů .NET. Je to jazyk vyvinutý společností Microsoft psát uživatelské rozhraní pro aplikace nové generace.
XML je určeno k ukládání dat nebo k práci s uloženými daty, zatímco XAML je rozšířená verze XML používaná pro programování .NET.
52. Zmínit výhodu používání XAML?
Výhodou použití XAML je
- Kód XAML je dobře čitelný a je krátký
- Oddělení návrhářského kódu a logiky
- Nástroje jako mix výrazů používané pro grafický design vyžadují jako zdroj XAML
- Jasně odděluje role designéra a vývojáře
53. Jak můžete kódovat pro zobrazení „Hello World“ v XAML?
Zobrazuje se „Ahoj světe“.
<page xmlns= '' ''> <TextBlock> Hello, World! </TextBlock> </Page>
54. Jak jsou v XAML specifikovány grafické komponenty?
V XAML jsou grafické komponenty specifikovány pomocí otevřených nebo uzavřených značek s atributy.
Například,
- Štítek s obsahem
klikněte
- Štítek bez obsahu
< Tlačítko/>
55. Co je syntaxe atributů v XAML?
V XAML syntaxe atributů nastavuje hodnotu vlastnosti nebo pojmenuje obslužnou rutinu události deklarací atributu u elementu. Hodnota atributu by měla být uzavřena do dvou uvozovek (“).
Například,
< Button Background = "Black" Foreground "Red" Content = "This is an operating button"/>
56. Vysvětlete vlastnosti obsahu XAML?
XAML představuje funkci jazyka, pomocí které může třída přidělit přesně jednu ze svých vlastností jako vlastnost XAML
57. Vysvětlete, co je rozšíření značek v XAML?
Rozšíření značek jsou zástupné symboly v XAML, které se používají k vyřešení vlastnosti za běhu. Rozšíření značek umožňuje rozšířit XAML a pomocí syntaxe atributů můžete také nastavit libovolnou vlastnost, kterou lze nastavit v XAML. Účelem rozšíření značek je zpracovat řetězec a vrátit objekt. Některá ze standardních rozšíření značek jsou xNull, x: Řada, :StatickýZdroj a DynamickýZdroj.
58. Jaké jsou čtyři obecné druhy prvků XAML?
Čtyři obecné druhy prvků XAML jsou
- Kořenové prvky
- Panelové prvky
- Ovládací prvky
- Geometrické prvky
59. Co X: označuje prefix v XAML?
Předpona X: se používá k mapování jmenného prostoru XAML v šablonách.
60. Jaké jsou různé předpony X: používané v jazyce XAML?
- x: Key à Nastavuje jedinečný klíč pro každý zdroj ve slovníku zdrojů
- x: Classà Určuje jmenný prostor CLR (Common Language Runtime) a název třídy pro třídu, která poskytuje kód.
- x: Name à Určuje název runtime objektu pro instanci, která existuje v run time kódu po zpracování elementu objektu.
- x: Static à Umožňuje odkaz, který vrací statickou hodnotu, která je jinak kompatibilní s XAML
- x: Type à Vytvoří odkaz typu na základě názvu typu
61. Jak můžete nastavit atribut vlastnosti jako doslovný řetězec a ne jako příponu značky?
Abyste se vyhnuli prodlužování, musíte použít prázdný pár složených závorek jako
Content = „{} {Toto není rozšíření značek}“/>
62. Jaké typy potomků může mít objektový element v XAML?
Objektový prvek může mít tři typy potomků
- Sbírkové předměty
- Hodnota pro vlastnost content
- Hodnota, kterou lze typově převést na element object
63. Vysvětlete, co je Type Converter?
Převodník typů je užitečný pro převod řetězce na vhodný hodnotový typ, pokud se nepoužívá rozšíření značek. Převodník typů definuje čtyři členy pro převod na a z řetězce pro účely XAML.
- CanConvertTo
- CanConvertFrom
- Převést na
- PřevéstZ
64. Vysvětlete syntaxi objektových prvků v XAML?
Pro vytvoření instance třídy nebo struktury CLR deklarací elementu XML se používá syntaxe značek XAML. Tato syntaxe se označuje jako syntaxe elementů objektu.
65. Jaké jsou způsoby, jak můžete deklarovat objekty v XAML?
Chcete-li deklarovat objekty v XAML, existují tři způsoby
- Přímo pomocí syntaxe elementu objektu: Tato syntaxe se používá k deklaraci kořenových objektů nebo vnořených objektů, které nastavují hodnoty vlastností
- Nepřímo pomocí syntaxe atributu: Tato syntaxe používá hodnotu vloženého řetězce, která obsahuje instrukce, jak vytvořit objekt. K nastavení hodnoty vlastnosti na nově vytvořenou referenci použije analyzátor XAML tento řetězec
- Použití rozšíření značek
66. Co by měl obsahovat kořenový prvek dokumentu XAML?
V dokumentu XAML se kořenový prvek skládá pouze z určitých prvků a těmito prvky jsou okno, plátno nebo panely.
67. Co je to datová vazba s XAML?
Vazba dat poskytuje jednoduchý způsob zobrazení a interakce s daty. Příklad ukáže, jak lze v XAML provádět vazbu dat. Vazba v XAML se provádí pomocí syntaxe {binding….}.
68. Vysvětlete, jak můžete zobrazit různá data v době běhu a návrhu?
- Jedním ze způsobů zobrazení dat za běhu a návrhu je deklarace dat v XAML
- Dalším způsobem je deklarace v XAML s použitím různých datových atributů z jmenného prostoru XML návrháře. Tento jmenný prostor se obvykle deklaruje s prefixem ad:.
xmlns: d= http://schemas.microsoft.com/expression/blend/2008
69. Vysvětlete, co je to funkce x: Klíčová direktiva v XAML?
X: Key jedinečně identifikuje prvky, které jsou vytvořeny a odkazovány ve slovníku definovaném XAML. Přidáním hodnoty x: Key k prvku objektu XAML lze identifikovat zdroj ve slovníku prostředků a je to nejběžnější způsob identifikace.
70. Vysvětlete, k čemu slouží syntaxe prvku vlastnosti?
Pomocí syntaxe elementu vlastnosti můžete přidat dětský element s názvem ve tvaru parent.název_vlastnosti.
71. Jak lze definovat vlastní třídy používané v XAML?
Vlastní třídy se používají dvěma způsoby
- S kódem, který vytváří aplikaci Primary Windows Presentation Foundation (WPF), nebo v kódu za ním
- V samostatném sestavení jako třída, jako je například spustitelný soubor nebo DLL používaná jako knihovna tříd
72. Co je jmenný prostor Xaml?
Jmenný prostor lze definovat jako prostředí nebo abstraktní kontejner používaný k uložení logického seskupení jedinečných identifikátorů nebo symbolů.
Tyto otázky na pohovoru také pomohou ve vašem životě (ústních)
Znovu zkontrolujte definici tunelu a bublinové události, zdá se, že je zaměněna.
Dejte mi vědět, jestli se mýlím.