XAML рдХреЛ рд╕рдордЭрдирд╛

рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рд▓реЗрдЦ рд╣реИ: рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА XAML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рдд рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдЦ рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрдИ рд╡рд┐рд╡рд░рдгреЛрдВ рдЬреИрд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди, рдЖрджрд┐ рдХреЛ рдирд╣реАрдВ рдЫреВрддрд╛ рд╣реВрдВред рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдкрд╛рд░реНрд╕рд░ рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдореГрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЧреНрд░рд╛рдл рдЖрдкрдХреЗ рдкрд╛рда рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

XAML рдПрдХ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ Microsoft рдХреЗ WPF рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрдИ рд╣реИред рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 (рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ) рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдм рдХрд╛рдлреА рд▓реЛрдЧ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рднрд╛рд╡реА рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рднрд╛рд╖рд╛ рдХреЗ рдкреАрдЫреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбрд┐рдЬрд╛рдЗрди рдЕрдЬреАрдм рди рд▓рдЧреЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдереЛрдбрд╝рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рджреЛ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: рдЕрдирд┐рд╡рд╛рд░реНрдп рдФрд░ рдШреЛрд╖рдгрд╛рддреНрдордХред

рдЗрдВрдкреАрд░рд┐рдпрд▓ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╕реА, рд╕реА ++, рд╕реА #, рдкрд╛рд╕реНрдХрд▓, рдмреЗрд╕рд┐рдХ рдФрд░ рдХрдИ рдЕрдиреНрдп рдЬреИрд╕реА рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╣реИрдВред рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рдирд╣реАрдВ рдХрд╣рддреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЖрдорддреМрд░ рдкрд░ рд╣рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рд╡рд┐рдЪрд╛рд░рд╛рддреНрдордХ рднрд╛рд╖рд╛рдПрдВ, рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ, рд╣рдореЗрдВ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдРрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг: XAML (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдорд╛рд░реНрдХрдЕрдк XML, HTML, рдЖрджрд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд), SQL рднреАред

рддреЛ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ?

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ "Habr" рдкрд╛рда рдореЗрдВ рд╕реЗрдЯ рдХрд░ рджреЗрддрд╛ рд╣реВрдВ, C # рдореЗрдВ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
var tb = new TextBox(); tb.Text = "Habr"; 

XAML рдкрд░, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
 <TextBox Text="Habr"/> 

рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╣рд╛:
1. TextBox рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ tb рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред
2. "Habr" рдХреЗ рд▓рд┐рдП tb.Text рдЪрд░ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред

рджреВрд╕рд░реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдореИрдВ рдкрд╛рда рдореЗрдВ "рд╣реИрдмрд░" рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдкрд╛рд░реНрд╕рд░ рдХрд░рддрд╛ рд╣реИред рдкрд╛рд░реНрд╕рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рдВрдмреЗ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред

рддреЛ, рдЕрдм рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг, рдкрд╛рд░реНрд╕рд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде:
 <UserControl x:Class="WpfApplication1.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <TextBox Text="Habr" Foreground="Yellow"> <TextBox.Background> <SolidColorBrush Color="Red"/> </TextBox.Background> </TextBox> </UserControl> 

рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: рд╕рднреА рдЯреИрдЧ рдЬрд┐рдирдореЗрдВ рдбреЙрдЯ рдирд╣реАрдВ рд╣реИред XAML рдореЗрдВ, рд╡реЗ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдХрдХреНрд╖рд╛ рдХреЛ рддреБрд░рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред Parser рдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд░реНрдЧ рдХреЛ рдмрдирд╛рдирд╛ рд╣реИ? рдпрд╣ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдФрд░ .рдиреЗрдЯ рдирд╛рдорд╕реНрдерд╛рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХреНрд╕рдПрдордПрд▓ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдореИрдкрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рдкрддреНрд░ xmlns = " schemas.microsoft.com/winfx/2006/xaml/pretation " рдХреЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╕реНрдерд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .Net рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рдЙрдиреНрд╣реЗрдВ .Net рд╕реЗ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ), рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИред " Schemas.microsoft.com/winfx/2006/xaml/pretation " System.Windows.Controls PresentationFramework.dll рд╕реЗ рд╕рдВрдмрджреНрдз рд╣реИред рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд╣-рдЕрдиреБрдкрд╛рд▓рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: xmlns: CustomPrefix = "clr-namespace: WpfApplication1"
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ


рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд╛рдо рд╕реНрдерд╛рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕рд╕реЗ рддрддреНрд╡ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 <CustomPrefix:CustomObject/> 


рддреЛ рд╣рдорд╛рд░рд╛ XAML Parser рдХреЛ WpfApplication1.UserControl1 рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрд╛рд░реНрд╕рд░ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ TextBox рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдкрд╛рд░реНрд╕рд░ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдЦреИрд░, рд╣рдордиреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЫрд╛рдВрдЯрд╛ред рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдЧреБрдг рд╣реИрдВред рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
  1. рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
     <TextBox Text="Habr"/> 
  2. рдЯреИрдЧ:
     <TextBox> <TextBox.Text>Habr</TextBox.Text> </TextBox> 
  3. рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк 2.1 рд╣реИред рдЬрдм рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБ рдХреЗ рдЕрдВрджрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
     <TextBox>Habr</TextBox> 
    рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЪрд░рдг 2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ TextBox рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ
     [ContentProperty("Text")] 

рдЕрдм рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ:
1. рдПрдХреНрд╕рдПрдордПрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рддрд╛рд░реЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрд┐рд╕ рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдЖрдк рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдордп, рдкрд╛рд░реНрд╕рд░ рдЗрд╕ рдорд╛рди рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░, рдЬреИрд╕реЗ рдЗрдВрдЯ, рдбреЗрдЯрд╛рдЗрдо, рдкрд╛рд░реНрд╕рд░ рдЦреБрдж рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдмрд╕ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╛рд░реНрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:
 <TextBox Background="Red"/> 

TextBox.Background рд╕рдВрдкрддреНрддрд┐ рдмреНрд░рд╢ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИ - рдпрд╣ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SolidColorBrush, LinerGradientBrush, рдФрд░ рдЕрдиреНрдпред рддреЛ рд╣рдорд╛рд░реА "рд░реЗрдб" рд▓рд╛рдЗрди рдмреНрд░рд╢ рдХрд╛ рдЙрдкрд╡рд░реНрдЧ рдХреИрд╕реЗ рдмрди рдЬрд╛рддреА рд╣реИ? рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдиреНрд╡рд░реНрдЯрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдХрдирд╡рд░реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ, рдЯрд╛рдЗрдкрдХреЛрдСрдиреНрдЯреЗрдХреНрдЯрд░ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдЯрд╛рдЗрдк рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдмреНрд░рд╢ рддрдХ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рд╣реИ, рдЬреЛ рд╕реЙрд▓рд┐рдбрдХреЛрд▓рд░рдмреНрд░рд╢ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░рдВрдЧ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдорд╛рдирдХ рдХрдирд╡рд░реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдореВрд▓реНрдп рдкрд░ рдХреБрдЫ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ? - рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ IValueConverter рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬреЛрдбрд╝рддреЛрдбрд╝ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ XAML рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
 <TextBox Background="{Binding Source='Red-Green', Converter={StaticResource GradientColorConverter}}"> 

рдмреЗрд╢рдХ, рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдбреЗрдЯрд╛ рдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдЬрдЧрд╣ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
 <TextBox Background="{Binding Source='Red-Green', Converter={StaticResource GradientColorConverter}}"> <TextBox.Resources> <WpfApplication1:GradientColorConverter x:Key="GradientColorConverter"/> </TextBox.Resources> </TextBox> 

рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдореИрдВ рдпрд╣рд╛рдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рдпрд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

2. рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП: рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
 <TextBox Text="Habr"> <TextBox.Background> <SolidColorBrush Color="Blue"/> </TextBox.Background> </TextBox> 

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо TextBox рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЯреИрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рд╣рдо SolidColorBrush рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд░рд╢ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рдкрд░рд┐рд╖реНрдХрд░рдг рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдХреБрдЫ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдорд╛рд░реНрдХрдЕрдк рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдпреВрдкреАрдбреА рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдВрд╢рджрд╛рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

Source: https://habr.com/ru/post/In141069/


All Articles