ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π’ WPF ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ Π΄Π²Π° элСмСнта управлСния мСню: Menu (для Π³Π»Π°Π²Π½Ρ‹Ρ… мСню) ΠΈ ContextMenu (для Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… мСню, присоСдиняСмых ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам). Как ΠΈ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… классов, WPF выполняСт Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для элСмСнтов управлСния Menu ΠΈ ContextMenu. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ упомянутыС элСмСнты управлСния Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ простыми ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Win32 ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ нСсколькими Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ способами.

Если класс Menu ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, обслуТиваСмом Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΎΠ½ появляСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части страницы. Окно Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ страницу прилоТСния ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ собствСнноС мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Класс Menu

Π’ WPF Π½Π΅ дСлаСтся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ мСню. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΎ пристыковываСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта управлСния DockPanel ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строки элСмСнта управлСния Grid Π»ΠΈΠ±ΠΎ просто растягиваСтся ΠΏΠΎ всСй ΡˆΠΈΡ€ΠΈΠ½Π΅ ΠΎΠΊΠ½Π°. Однако Π½Π° самом Π΄Π΅Π»Π΅ мСню ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π΄Π°ΠΆΠ΅ рядом с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ элСмСнтами управлСния. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ мСню, сколько Π½ΡƒΠΆΠ½ΠΎ. Π₯отя особого смысла Π² этом ΠΈ Π½Π΅Ρ‚, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ строки мСню стопками ΠΈ вразброс ΠΏΠΎ всСму ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ интСрфСйсу.

Вакая свобода дСйствий ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ интСрСсныС возмоТности. НапримСр, Ссли Π²Ρ‹ создадитС мСню с ΠΎΠ΄Π½ΠΈΠΌ высокоуровнСвым Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ стилизуСтС Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΡƒ, получится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ мСню, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΡƒΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π² точности ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ эффСкта Π² слоТном интСрфСйсС, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈ просто Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½Ρ‹ΠΌ способом запутывания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎ внСшний Π²ΠΈΠ΄ мСню ΠΈ подмСню ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ΠΈ шаблонов элСмСнтов управлСния. Π‘Π°Π·ΠΎΠ²ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ стилизации ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ шаблонС элСмСнта управлСния MenuItem.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ мСню

ВсС мСню ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² MenuItem ΠΈ Separator. Класс MenuItem унаслСдован ΠΎΡ‚ HeaderedltemsControl, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт мСню ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Π½Π΅Π³ΠΎ тСкст) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² сСбС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² MenuItem (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдставляСтся подмСню). Класс Separator просто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ линию для раздСлСния элСмСнтов мСню.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° простая комбинация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² MenuItem, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΡƒΡŽ структуру мСню, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π½Π° рисункС:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

WPF позволяСт Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» структуризации мСню. НапримСр, Π²Π½ΡƒΡ‚Ρ€ΠΈ Menu ΠΈΠ»ΠΈ MenuItem допускаСтся Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ MenuItem. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мСню, содСрТащиС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ элСмСнты WPF, начиная ΠΎΡ‚ Checkbox ΠΈ заканчивая DocumentViewer. По ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² мСню ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ MenuItem, практичСски всСгда являСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. НапримСр, элСмСнт TextBox Π² MenuItem Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ фокус сразу ΠΆΠ΅ послС пСрСмСщСния ΠΌΡ‹ΡˆΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ этого MenuItem.

Если ΠΆΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ мСню с элСмСнтами управлСния, Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Expander) ΠΈ Π΅Π³ΠΎ стилизации Π² соотвСтствии с ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ потрСбностями. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния Menu ΠΈ MenuItems стоит ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ трСбуСтся ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, свойствСнноС мСню β€” Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π³Ρ€ΡƒΠΏΠΏΠ° Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄.

Если Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ подмСню послС открытия ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€Π°, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС, установитС свойство StaysOpenOnClick Π² true.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ MenuItem ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ стандартных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Menu, ContextMenu ΠΈ MenuItem. Они Π±ΡƒΠ΄ΡƒΡ‚ вСсти сСбя Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ элСмСнты мСню, Ρ‚.Π΅. Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° Π½ΠΈΡ… курсора ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΠΈ дСйствий. Однако ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ содСрТащимся Π² Π½ΠΈΡ… подмСню Π½Π΅ получится. ΠžΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ, это ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Π΅Ρ… возмоТностСй Menu, которая вряд Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Для рСагирования Π½Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° элСмСнтС MenuItem ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ событиС MenuItem.Click. МоТно ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, Π° ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ дСскриптору Menu ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΊΠΈΡ… событий. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойств Command, CommandParameter ΠΈ CommandTarget ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ MenuItem с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Command, ΠΊΠ°ΠΊ это дСлалось для ΠΊΠ½ΠΎΠΏΠΎΠΊ.

Π’Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ особСнно ΡƒΠ΄ΠΎΠ±Π΅Π½, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ нСсколько мСню (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΈ контСкстноС мСню), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΠ»ΠΈ мСню ΠΈ панСль инструмСнтов с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ этого мСню.

Помимо тСкстового содСрТимого (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдоставляСтся Ρ‡Π΅Ρ€Π΅Π· свойство Header), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ MenuItem ΠΌΠΎΠ³ΡƒΡ‚ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Ρ‰Π΅ нСсколько пСрСчислСнных Π½ΠΈΠΆΠ΅ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ:

ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΎΠΊ Π² области поля сразу ΠΆΠ΅ слСва ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСню;

Ρ„Π»Π°ΠΆΠΎΠΊ Π² области поля (Π² случаС указания сразу Ρ„Π»Π°ΠΆΠΊΠ° ΠΈ Π·Π½Π°Ρ‡ΠΊΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π»Π°ΠΆΠΎΠΊ);

тСкст сокращСнной ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ справа ΠΎΡ‚ тСкста мСню (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСкст Ctrl+O для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Open (ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ)).

Π’ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ всСх этих Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного. Для отобраТСния ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡ΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство MenuItem.Icon. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ свойство Icon способно ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для отобраТСния Π΄Π°ΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΉ рисунок. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами Π½Π΅ зависящСй ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСмы ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ WPF ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ большС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΏΡ€ΠΈ Π±ΠΎΠ»Π΅Π΅ высоких настройках DPI систСмы. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΎΠΊ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ просто элСмСнт Image с растровым ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Для отобраТСния рядом с элСмСнтом мСню Ρ„Π»Π°ΠΆΠΊΠ° понадобится ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство MenuItem.IsChecked Π² true. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, Ссли IsCheckable Ρ€Π°Π²Π½ΠΎ true, Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ элСмСнтС мСню Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π½Π΅ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ΅ состояниС ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Однако способа ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов мСню с Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Π½Π΅ сущСствуСт. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ эффСкт, придСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΡΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π»Π°ΠΆΠΊΠΎΠ² ΠΏΡ€ΠΈ установкС Ρ„Π»Π°ΠΆΠΊΠ° рядом с элСмСнтом.

ВСкст сокращСнной ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для элСмСнта мСню указываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства MenuItem.InputGestureText. Однако простоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этого тСкста Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π΅Π³ΠΎ Π½Π΅ сдСлаСт. Об отслСТивании Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… клавиш Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ сам. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всСгда это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΌΠ°Π»ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, поэтому элСмСнты мСню часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сокращСнных ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ InputGestureText Π·Π° ΠΎΠ΄ΠΈΠ½ шаг.

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт MenuItem связываСтся с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ApplicationsCommands.Open:

Доступно Ρ‚Π°ΠΊΠΆΠ΅ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС MenuItem: IsChecked, IsHighlighted, IsPressed ΠΈ IsSubmenuOpen. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стили Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия.

Класс ContextMenu

Как ΠΈ Menu, класс ContextMenu содСрТит ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² MenuItem. Π Π°Π·Π½ΠΈΡ†Π° состоит лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ContextMenu Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΠΎΠΊΠ½Π΅. ВмСсто этого ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для установки свойства ContextMenu Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта:

Бвойство ContextMenu ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² классС FrameworkElement, поэтому ΠΎΠ½ΠΎ поддСрТиваСтся практичСски всСми элСмСнтами WPF. Π’ случаС, ΠΊΠΎΠ³Π΄Π° это свойство установлСно для элСмСнта, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ имССтся собствСнноС контСкстноС мСню, стандартноС мСню замСняСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² этом свойствС. Если просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ мСню, установитС ContextMenu Π² null.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мСню Π² WPF, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ Π²Π΅Π±-прилоТСния Microsoft

Π½Π°ΠΌ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ€ΡƒΡ‡Π΅Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² WPF, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WinForms сСрого Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΊΠΎΡ€Π° соврСмСнным внСшним Π²ΠΈΠ΄ΠΎΠΌ.

Π½Π°ΠΌ нравится внСшний Π²ΠΈΠ΄ ΠΈ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π΅Π±-прилоТСния Microsoft Π² настоящСС врСмя ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эти мСню Π² WPF ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом:

Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ выглядит ΠΊΠ°ΠΊ мСню Winforms.

Π― Π²ΠΈΠ΄Π΅Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ довольно Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ усилия ΠΏΠΎ стилизации, ΠΊΠ°ΠΊ этот, Π½ΠΎ всС ΠΎΠ½ΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π·Π½Π°ΠΊΠΎΠΌΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Winforms. Π― Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅Π» мСню Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Mahapps Metro, Π½ΠΎ ΠΎΠ½ΠΈ каТутся Π½Π°ΠΌ слишком спартанскими.

являСтся Π»ΠΈ элСмСнт управлСния мСню WPF достаточно Π³ΠΈΠ±ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ стилизованным, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π²Ρ‹ΡˆΠ΅, ΠΈΠ»ΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, ΠΊΠ°ΠΊ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта управлСния мСню ΠΈΠ· ΠΏΠ°Π½Π΅Π»Π΅ΠΉ стСка ΠΈ списков? ΠšΠ°ΠΊΠΎΠ²Ρ‹ компромиссы?

бонусныС Π±Π°Π»Π»Ρ‹ (Ρ‚. Π΅. Π±Π°ΡƒΠ½Ρ‚ΠΈ) Π±ΡƒΠ΄ΡƒΡ‚ начислСны Π·Π° xaml / ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ это.

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этого стиля мСню Π² дСйствии:
https://www.visualstudio.com/

5 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

WPF Π±Ρ‹Π» Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ измСнСния внСшнСго Π²ΠΈΠ΄Π° ΠΈ повСдСния всСх Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² / элСмСнтов управлСния (ΠΊΠ½ΠΎΠΏΠΊΠΈ, мСню, treeview ΠΈ Ρ‚. Π΄.). Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π² ΠΎΠ±Ρ‰Π΅ΠΌ, Π»ΡƒΡ‡ΡˆΠ΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ всС ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. НапримСр, Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ своС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ мСню, Π²Π°ΠΌ придСтся ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ Ρ‚. Π΄.

Π²ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ, ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΠ½ выглядит ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ:

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π²ΠΎΡ‚ XAML. Π― Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта управлСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ MenuItem. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это довольно ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт.

Π²Ρ‹, вСроятно, ΠΈΡ‰Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ‚Π΅ΠΌΡƒ Wpf для Π½Π°Ρ‡Π°Π»Π°.

Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹, вСроятно, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΅Ρ‰Π΅ большС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ внСшний Π²ΠΈΠ΄ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ WPF

ΠžΡΠ²ΠΎΠΈΡ‚ΡŒ основныС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС страничной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния, создания мСню, ΠΏΠ°Π½Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов управлСния ΠΈ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ для выполнСния Π·Π°Π΄Π°Ρ‡ прилоТСния.

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт собой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ бизнСс-Π·Π°Π΄Π°Ρ‡Ρƒ (бизнСс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ). ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. АрхитСктура прилоТСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ слой прСдставлСния, бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слоя прилоТСния Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ опрСдСляСтся ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ присущи практичСски Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π’Π°ΠΊ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ слой прСдставлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчит интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с систСмой. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан с использованиСм Windows ΠΎΠΊΠΎΠ½ ΠΈ страниц WPF, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами контроля. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ контроля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с бизнСс-классами. Π‘Π»ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ прилоТСния Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния: Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-классы, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ соСдинСниС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΡ… ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. РСализация Π΄Π°Π½Π½ΠΎΠ³ΠΎ слоя прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ построСна Π½Π° Π±Π°Π·Π΅ классов, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ классов интСрфСйсных элСмСнтов ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ классов ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ взаимодСйствиС прилоТСния с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ систСмы управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… прилоТСниях для этого Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ADO.NET Entity Framework ΠΈ модСль EDM (Entity Data Model). МодСль EDM описываСт структуру Π΄Π°Π½Π½Ρ‹Ρ… нСзависимо ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ хранСния.

Для изучСния вопросов проСктирования ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ рассмотрим основныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, которая обСспСчиваСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотрудникам ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Для ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… TitlePersonal с нСбольшим Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ обСспСчСниС Π²Π²ΠΎΠ΄Π°, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ сотрудниках ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотрудникам ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: фамилия; имя; отчСство; Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ; Π΄Π°Ρ‚Π° роТдСния; Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½; адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.

1. просмотр Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотрудникам;

2. Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ сотруднику;

3. Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотруднику;

4. ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотруднику;

5. поиск Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотруднику.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ПослС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠžΠš» Π±ΡƒΠ΄Π΅Ρ‚ сформирован шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ этом ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ систСма сгСнСрируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ XAML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚:

Window x : Class =»Wpf_Erina.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 >

Grid >
Window >

Π”ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Рисунок 2.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

x : Class =»Wpf_Erina.MainWindow»

Π΄Π²Π° пространства ΠΈΠΌΠ΅Π½

Title =»MainWindow» Height =»350″ Width =»525″

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠœΠ΅Ρ‚ΠΎΠ΄ InitializeComponent() гСнСрируСтся Π²ΠΎ врСмя компиляции прилоТСния ΠΈ Π² исходном ΠΊΠΎΠ΄Π΅ Π½Π΅ присутствуСт.

2. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ страницы прилоТСния

Π’ послСднСС врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ прСимущСства Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° качСствСнном Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, Ρ‡Π΅Ρ‚ΠΊΠΎΠΌ ΠΈ понятном интСрфСйсС. ВСхнология WPF позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°Π½ΠΈΡ‡Π½ΡƒΡŽ модСль (прилоТСния), с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ срСдствами Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы прилоТСния создаСтся Ρ„Π°ΠΉΠ» XAML ΠΈ Ρ„Π°ΠΉΠ» ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° языкС C#. ΠŸΡ€ΠΈ компиляции Ρ‚Π°ΠΊΠΎΠ³ΠΎ прилоТСния компилятор создаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ написанный ΠΊΠΎΠ΄ с Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ автоматичСски ΡΠ²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ элСмСнтами.

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΠΎΠ½ ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… страниц. Π’ WPF ΠΏΡ€ΠΈ создании страничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹:

Для вставки страницы Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΎΠΊΠ½Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс Frame (Рисунок 4). АвтоматичСски Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрирован экзСмпляр класса Frame с фиксированными Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ (Рисунок 5).

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π’ XAML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка:

Frame Content =»Frame» HorizontalAlignment =»Left» Height =»100″ Margin =»144,95,0,0″ VerticalAlignment =»Top» Width =»100″/>

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ создаСтся страничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, поэтому ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ описаниС свойств Ρ„Ρ€Π΅ΠΉΠΌΠ°:

Frame Name =» frame 1″ Margin =»3″ />

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ всё ΠΎΠΊΠ½ΠΎ (Рисунок 6):

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Класс Page ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свойства:

Background – ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΈΡΡ‚ΡŒ, которая устанавливаСт Π·Π°Π»ΠΈΠ²ΠΊΡƒ для Ρ„ΠΎΠ½Π°;

Content – ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отобраТаСтся Π½Π° страницС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² Ρ€ΠΎΠ»ΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта выступаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠ°ΠΊΠ΅Ρ‚Π° (элСмСнт Grid ΠΈΠ»ΠΈ StackPanel );

KeepAlive – опрСдСляСт, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ страницы ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ страницу;

ShowsNavigationUI – опрСдСляСт, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ Π² ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ Π΄Π°Π½Π½ΡƒΡŽ страницу хостС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ элСмСнты управлСния;

Title – устанавливаСт имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для страницы Π² Ρ…Ρ€ΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ;

Window Title – устанавливаСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отобраТаСтся Π² строкС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π’ ΠΎΠΊΠ½Π΅ ДобавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ шаблон «Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° (WPF)» (1) ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ имя страницы PageMain (2 Π½Π° Рисунок 8).

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π’ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сгСнСрируСтся страница PageMain.xaml (Рисунок 9).

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠšΠ»Π°ΡΡΡ‹ кистСй Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ класса System.Windows.Media.Brush ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ эффСкты ΠΏΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΠΎΠ½Π°, ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π° ΠΈΠ»ΠΈ Π³Ρ€Π°Π½ΠΈΡ† элСмСнтов. НСкоторыС классы кистСй ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅:

LineaGradientBrush – рисуСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ;

RadialGradientBrush – рисуСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π΄ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π² Ρ€Π°Π΄ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ;

ImageBrush – рисуСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ графичСскоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ;

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ XAML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° для опрСдСлСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠΉ Π·Π°Π»ΠΈΠ²ΠΊΠΈ страницы.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² страницу Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку «Π‘истСма Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΡƒΡ‡Π΅Ρ‚Π° инвСстиционной ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ».

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Главная страница прилоТСния Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ прСдставлСна Π½Π° Рисунок 10.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

На страницС WPF-прилоТСния ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ( элСмСнты управлСния) для обСспСчСния взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ систСмы.

3. Навигация страничного прилоТСния

Hyperlink NavigateUri =»PageName.xaml»> ВСкст ГипСрссылки Hyperlink >

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ гипСрссылки Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° WPF-прилоТСния ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Π°.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции ΠΈ выполнСния WPF-прилоТСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Рисунок 12.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

По ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅ΠΌ постСпСнно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния Π² части ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сотрудникам ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

4. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса

Π’ WPF ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ основноС ΠΈ контСкстноС мСню. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ панСль инструмСнтов с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ мСню.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ПослС добавлСния графичСских Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (Рисунок 14).

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°Π΄Π°Π΄ΠΈΠΌ свойство Name – имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ свойство ToolTip с тСкстом Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ подсказки ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ указатСля ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π’ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Visual Studio страница PageEmployee ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° Рисунок 15.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° панСль инструмСнтов прилоТСния.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π’ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт контроля DataGrid для Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ сотрудниках. Π’ качСствС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ тСкстовый Π±Π»ΠΎΠΊ » Бписок сотрудников «.

Класс DataGrid прСдставляСт элСмСнт управлСния, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ Π² настраиваСмой сСткС строк ΠΈ столбцов. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ DataGrid автоматичСски создаСт столбцы, Π½Π° основС источника Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ столбцов:

DataGridTextColumn – для отобраТСния Π² ячСйках столбцов тСкстового содСрТимого;

DataGridCheckBoxColomn – для отобраТСния Π² ячСйках столбцов логичСских Π΄Π°Π½Π½Ρ‹Ρ…;

DataGridComboBoxColomn – для отобраТСния Π² ячСйках столбцов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° имССтся Π½Π°Π±ΠΎΡ€ элСмСнтов для Π²Ρ‹Π±ΠΎΡ€Π°;

DataGrid ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство способов настройки отобраТСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π’Π°Π±Π»ΠΈΡ†Π° 1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список стандартных сцСнариСв.

Π’Π°Π±Π»ΠΈΡ†Π° 1. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ настройки отобраТСния Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π°

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ повСдСния ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ячСйки ΠΈ строки

Настройка внСшнСго Π²ΠΈΠ΄Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ячССк ΠΈ строк

Доступ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ элСмСнтам

Настройка взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ автоматичСски созданных столбцов

Π—Π°Π΄Π°ΠΉΡ‚Π΅ для свойства FrozenColumnCount Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 ΠΈ пСрСмСститС столбСц Π² ΠΊΡ€Π°ΠΉΠ½ΡŽΡŽ Π»Π΅Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π·Π°Π΄Π°Π² для свойства DisplayIndex Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.

Π’ качСствС источника Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ XML.

XAML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описания интСрфСйсных элСмСнтов страницы PageEmployee ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… интСрфСйсных элСмСнтов страница PageEmployee Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° Рисунок 17.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

ПослС запуска прилоТСния страница PageEmployee Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° Рисунок 18.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

На Π΄Π°Π½Π½ΠΎΠΌ этапС проСктирования прилоТСния Π½Π° страницС PageEmployee Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ элСмСнты контроля.

5. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

xmlns : command =»clr-namespace:Wpf_Erina.Commands»

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Для класса CommandBinding свойство Command опрСдСляСт ссылку Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π° свойства Executed ΠΈ CanExecute Π·Π°Π΄Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

Β· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° страницы (1);

Β· просмотр Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ всСм сотрудникам (2);

Β· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ сотруднику (3);

Β· созданиС Π½ΠΎΠ²ΠΎΠΉ записи ΠΏΠΎ сотруднику Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (4).

На Рисунок 19 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний прилоТСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΡ€ΡƒΠΆΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ состояния, Π° Π΄ΡƒΠ³ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ мСню Π² wpf

На основС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояний построим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ доступности ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… состояниях (Π’Π°Π±Π»ΠΈΡ†Π° 2).

Π’Π°Π±Π»ΠΈΡ†Π° 2. Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… состояниях прилоТСния

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *