wpf созданиС мСню в кодС

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

ВсС мСню ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² 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 для Π½Π°Ρ‡Π°Π»Π°.

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

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

РусскиС Π‘Π»ΠΎΠ³ΠΈ

.NET CORE (C #) ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ мСню WPF ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° MVVM

.NET CORE (C #) ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ мСню WPF ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° MVVM

Π§Ρ‚Π΅Π½ΠΈΠ΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ

1. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ мСню Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π² WPF Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСми. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ мСню с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MVVM. Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто.

wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π€ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅

2. РСализация ΠΊΠΎΠ΄Π°

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° управлСния MaterialDesign

wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π€ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

2.1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚ΠΈΠ»ΡŒ управлСния MD

Π€Π°ΠΉΠ» [App.xaml], установитС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ [Views / MainView.xaml] Π² StartupUri ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ 4 Ρ„Π°ΠΉΠ»Π° стилСй элСмСнта управлСния MD Π² ΡƒΠ·Π΅Π» [Application.Resources]

2.2 Models

Π”Π²Π° простых класса сущностСй мСню:

2.2.1 МСню ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½ΠΎΠ²ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅

Π€Π°ΠΉΠ» [ItemCount.cs] опрСдСляСт количСство Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, ΠΈ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° дисплСя:

2.2.2 Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π΅ мСню

Π€Π°ΠΉΠ» [MenuItem.cs] опрСдСляСт имя, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½ΠΎΠ²ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ мСню:

Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π·Π½Π°Ρ‡ΠΎΠΊ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², которая поставляСтся с элСмСнтом управлСния MD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСчислСния [PackIconKind]. Π—Π½Π°Ρ‡ΠΎΠΊ ΡˆΡ€ΠΈΡ„Ρ‚Π°, прСдоставляСмый Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ³Π°Ρ‚, Π² настоящСС врСмя ΠΈΡ… 4836 (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСчислСния 7883),
Π’ΠΎΡ‚ нСсколько послСдних:

2.3 ViewModels

Π€Π°ΠΉΠ» [MainViewModel.cs] опрСдСляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько простых Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²: Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ отобраТСния Ρ„ΠΎΡ€ΠΌΡ‹, список привязки мСню. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простоС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСдставлСниС MainView.xaml Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ содСрТимого:

2.4 Views

Π€Π°ΠΉΠ» [MainView.xaml.cs] слуТит сСрвСрной Ρ‡Π°ΡΡ‚ΡŒΡŽ прСдставлСния [MainView.xaml], связываСт ViewModel ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ пСрСтаскивания Ρ„ΠΎΡ€ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ:

3. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ссылаСтся Π½Π°

4. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

ВсС ΠΊΠΎΠ΄Ρ‹ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹. Π’ изобраТСниях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ внСшняя ссылка Π½Π° Π²Π΅Π±-сайтС Π²Π΅Π±-мастСров. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ΄Π° Π² соотвСтствии с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для запуска. Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π°Π²Ρ‚ΠΎΡ€Π° ΠΈ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽΡ‚ΡΡ. Π‘ΠΌ. [3. Бсылка Π½Π° эту ΡΡ‚Π°Ρ‚ΡŒΡŽ].

Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅, ΡΡ‚Π°Ρ‚ΡŒΠΈDotnet9 ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅, Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ.

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ адрСс ΡΡ‚Π°Ρ‚ΡŒΠΈ для ΠΏΠ΅Ρ€Π΅ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ: https://dotnet9.com/7339.html

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ QR-ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Dotnet9 Π² WeChat, этот сайт Π±ΡƒΠ΄Π΅Ρ‚ своСврСмСнно ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ послСдниС тСхничСскиС ΡΡ‚Π°Ρ‚ΡŒΠΈ

wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π€ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅

Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ рСкомСндация

wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π€ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅

ИспользованиС эффСкта Π·Π½Π°Ρ‡ΠΊΠ° Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ svga Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ vue

wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π€ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅

Android-ToggleButton

wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅. Π€ΠΎΡ‚ΠΎ wpf созданиС мСню Π² ΠΊΠΎΠ΄Π΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Google Web Toolkit, Apache Derby ΠΈ Eclipse для создания прилоТСния AJAX, Ρ‡Π°ΡΡ‚ΡŒ 1: Front Dream:

GWT позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚Ρ‹Π΅ клиСнтскиС интСрфСйсы Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Ajax, Ρ‡Π΅ΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ интСрфСйс Java GUI. Однако Π΄Π°ΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GWT, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ построСны ΠΎΡ‚Π΄Π΅Π»ΡŒ.

Webpack ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅

*установка Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, установитС webpack Π² зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ webpack ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. npm install [email protected] (этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π΄.

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ 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 Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *