WPF рд▓реЗрдЖрдЙрдЯ: рдорд╛рдк рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛



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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдПрдордПрд╕рдбреАрдПрди рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рд╕рд╡рд╛рд▓ рдЙрдарддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдХреЗрд╡рд▓ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рдорд╛рдк рдЪрд░рдг рдореЗрдВ рдПрдХ рдмрдЪреНрдЪрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЖрдХрд╛рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрд▓рдмреНрдз рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрд╛ - рдХреИрд╕реЗ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдореЗрдЬрд░рдСрд╡рд░рд╛рдЗрдб рдФрд░ рдЕрд░реЗрдВрдЬрдСрд╡рд░рд╛рдЗрдб рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдорд╛рдк рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдорд╛рдк рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдЕрд░реЗрдВрдЬ рд╕реНрдЯреЗрдЬ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЕрд░реЗрдВрдЬ рдХреЙрд▓ рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдк рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕реВрдЪрдирд╛рддреНрдордХ рдЪрд░рдг рд╣реИ?

рдЖрдЗрдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд░рд┐рдЯрд╛рдпрд░реНрдб рдореЛрдб рд╕рд┐рд╕реНрдЯрдо


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реА рдмрд░рдХрд░рд╛рд░ рдореЛрдб рдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИ , рдЬреЛ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рд╣реИред рдпрд╣ рдбреНрд░реЙрдЗрдВрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░рд┐рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рд░рд┐рдбрд░рд┐рдВрдЧ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ WPF рд╣реИ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╣рд░ рдЦрд┐рдбрд╝рдХреА рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдм WM_PAINT рдЬреИрд╕реА рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ Win32 API рдФрд░ WindowsForms рдХреЗ рд╕рд╛рде рд╣реБрдЖ рдерд╛, рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдмрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ WPF рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХрдм рдФрд░ рдХрд┐рд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкреБрди: рдЕрдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬрд┐рдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдФрд░ WM_PAINT рд╕рдВрджреЗрд╢ рдЖрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ , рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рдмрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдСрдирд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдирд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдХреЛ WPF рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдЫрд╡рд┐

OnRender рд╡рд┐рдзрд┐ рдХреЛ DrawingContext рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо DrawEllipse рдкреНрд░рдХрд╛рд░ , рдЖрджрд┐ рдХреЗ рдХрдерд┐рдд рдбреНрд░рд╛рдЗрдВрдЧ рддрд░реАрдХреЛрдВ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ ред рдХрдерд┐рдд рддреМрд░ рдкрд░, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рд╕рднреА рдХреЙрд▓ рдХрдорд╛рдВрдб рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм WPF рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдорд╛рдкрдиреЗ


рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдХрджрдо рдорд╛рдк рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛ , рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рддрддреНрд╡реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдкреАрдПрд╕рд╡рд┐рд▓реЗ рдФрд░ рдЕрд░реЗрдВрдЬрдЖрдИрд╡реА рдЕрдорд╛рдиреНрдп рдЭрдВрдбреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реБрдП, рдорд╛рдк рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рддреБрд░рдВрдд рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ред рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреБрдЫ DependencyProperty рдХреЛ AffectsMeasure / AffectsArrange рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЗрдирд╡реИрд▓рд┐рдбрдореИрд░реЗрдВрд╕ / InvalidateArange рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЭрдВрдбреЗ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рд▓реЗрдЦрди рдпрд╣ рднреА рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдорд╛рдк рдХрд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд╣рд▓рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣ рд╣реИ: рдпрджрд┐ рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдХреБрдЫ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрдиреЗ рдкрд░, рдмрдЪреНрдЪреЗ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдЖрдХрд╛рд░ рдФрд░ / рдпрд╛ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдкреНрд░реЛрдкрд░реЗрдЯреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ AffectsMeasure / AffectsArrange рдлреНрд▓реИрдЧ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдРрд╕рд╛ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рджрд┐рдП рдЧрдП рдорд╛рди рдХреЗ рд╕рд╛рде DependencyProperty рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ InvalidateMeasure / InvalidateArrange рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рдо рдХреЗ рд╕рд╛рде WPF рдХреЛ рдЕрдзрд┐рднрд╛рд░ рди рджреЗрдВред

рдЕрдм рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрди рджреЛ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╡рд╣ рд╣реИ - рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдФрд░ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдЙрдирдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреНрдпрд╛ рд╣реИрдВред рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реИ рдХрд┐ WPF рд▓реЗрдЖрдЙрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рд╕реНрд╡рд╛рдж рд▓реЗрдиреЗ рдореЗрдВ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛ред рдореИрдВ рднреА WPF рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЙрдкрд╛рдп рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛


рдорд╛рдк рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЪрдирд╛рддреНрдордХ рдЪрд░рдг рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдм рдХреБрдЫ рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ - рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЙрдирд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рддрдирд╛ рдХрдмреНрдЬрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдареАрдХ рд╣реИ, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреЛ рдХрд┐рддрдирд╛ рд╕реНрдерд╛рди рдХрд╛рдЯрдирд╛ рд╣реИ, рдФрд░ рдХреЙрд▓ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░реЗрдВ ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, PresentationCore рд╕реНрддрд░ рдкрд░, рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛрддрд╛ рд╣реИ (рд╡рд╣рд╛рдВ UIElement рдореЗрдВ рдЦрд╛рд▓реА рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдердбреНрд╕ рдорд╛рдкрдХ рдФрд░ ArrangeCore рд╢рд╛рдорд┐рд▓ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╣рдо рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, FrameworkElement рдФрд░ рдЙрд╕рдХреЗ рд╡рдВрд╢рдЬ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА PresentationFramework рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрджрд┐ рдЧрд▓рддрд┐рдпрд╛рдБ рдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рд╕рд╣реА, рдореИрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реВрдБрдЧрд╛ред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЙрдкрд╛рдп (рдЖрдХрд╛рд░ рдЙрдкрд▓рдмреНрдз рдЖрдХрд╛рд░) - рдПрдХ рд╡рд┐рдзрд┐, рдЬреЛ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛, рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА DesiredSize> availableSize рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рдВрд╢рд╛рд╡рд▓реА рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдЙрдкрд╛рдп рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЗрдВ рдХрд░рдирд╛ рд╣реИ:
  1. рд╕рднреА VisualChild рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХрд░реЗрдВ (рдЕрдиреНрдпрдерд╛ IsMeasureValid рдзреНрд╡рдЬ рдЙрдирдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдмрдЪреНрдЪрд╛ рддрддреНрд╡ рдЦреАрдВрдЪрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХреЗрдЧрд╛)ред рдЙрдкрд╛рдп рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрд╛рдп рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд╣рд▓реЗ рдорд╛рдк рдХреЛ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ = рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Double.PositiveInfinity ) рдФрд░ рдорд╛рдк рдХреЛ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдЙрди рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрдЪреНрдЪреЗ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  2. рдирд┐рдпрдВрддреНрд░рдг рдХреА рд╕реНрдерд┐рддрд┐ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЙрдкрд▓рдмреНрдз рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдорд╛рдк рдХреЛ рдЕрдВрддрд┐рдо рдХреЙрд▓ рддрддреНрд╡ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрд▓рдмреНрдз рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рдЧреНрд░рд┐рдб рд╕реЗрд▓ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ - рдмрдЪреНрдЪрд╛ рдореЗрдЬ рдкрд░ рдЙрд╕рдХреА рдореБрдЯреНрдареА рдкреАрдЯ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдЪрд╛рд╣рддрд╛ рд╣реИ! рдЗрд╕рд▓рд┐рдП, рдЬреЛ рдкреНрд░рд▓реЗрдЦрди рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╡рд╣ рдПрдХ 'рдирд░рдо рдмрд╛рдзрд╛' рд╣реИ, рдЬреЛ рдХрд┐ FrameworkElement рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЧрд▓рдд рдмреЛрд▓ рд░рд╣рд╛ рд╣реИред


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

рд╡реИрд╕реЗ, рдмрд┐рд▓реНрдХреБрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреНрдпреЛрдВ? рдХреНрдпрд╛ рдкреНрд░рдХрд╛рд╢ рдЙрд╕ рдкрд░ рдЕрднрд┐рд╕рд┐рдВрдЪрд┐рдд рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднрд┐рд╕рд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ FrameworkElement UIElement.MeasureCore рдФрд░ UIElement.ArrangeCore рдХреЛ рд╕реАрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдлреНрд░реЗрдордСрдореЗрдВрдЯ рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬ (рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг, рд╡рд┐рдВрдбреЛрдЬрд╝, рдЖрджрд┐) рдпрджрд┐ рд╡реЗ рдЪрд╛рд╣реЗрдВ рддреЛ рдорд╛рдкрдирдХреЛрд░ рдФрд░ рдЕрд░реЗрдВрдЬрдХреЛрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рд╡реЗ рдХреЗрд╡рд▓ рдЗрдЪреНрдЫрд╛рдПрдВ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдореАрдЬрд╝реЛрдПрд╡рд░реНрд░рд╛рдЗрдб рдФрд░ рдЕрд░реЗрдВрдЬ рдСрд╡рд░рд░рд╛рдЗрдб рд╡рд┐рдзрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдФрд░ рдЕрдм рдореЗрдЬрд░рдСрд╡рд░рд░рд╛рдЗрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрд╕рд▓рд╛рдЗрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд░рдо рдмрд╛рдзрд╛ рд╣реИ, рдФрд░ рдЖрдк рдХрд╛рдиреВрдиреА рд░реВрдк рд╕реЗ рдПрдХ рдорд╛рди рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рддрд░реНрдХ рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

public void Arrange (Rect finalRect) - рдмрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЙрд╕рдХрд╛ рд╕реНрдерд╛рди (x, y) рдФрд░ рдЖрдпрдд рдХрд╛ рдЖрдХрд╛рд░ рдмрддрд╛рддрд╛ рд╣реИред рдЗрди рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдХрд╛ рдЦрддрдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдорд╛рдк рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдмреАрдЪ рдирд┐рдореНрди рд╕рдВрдмрдВрдз рд╣реИ - рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдорд╛рдк рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдХреЛ рдПрдХ рдЖрдХрд╛рд░ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрдЧрд▓реА рдХреЙрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЕрд░реЗрдВрдЬ рдХрд░рдиреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реВрдЪреАрдмреЙрдХреНтАНрд╕ (рдЬрдм рд╡реНтАНрдпрд╡рд╕реНтАНрдерд╛ рдХрд░реЗрдВ <рдорд╛рдкреА рдХрд░реЗрдВ) рдиреВрд░ рджрд╛рдИрдВ рдУрд░ (рд╕реНтАНрдХреНрд░реЙрд▓рдмрд╛рд░ рд╕реНтАНрд▓рд╛рдЗрдб рдореЗрдВ рдмреЙрд░реНрдбрд░ рдХреЗ рд╕рд╛рде рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд░реЙрдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ рдиреАрдЪреЗ - рдХреНрд░реЙрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдпрд╣ рдорд╛рдкрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред

рдореАрд╕реЛрд╡рд░рд░рд╛рдЗрдб рдФрд░ рдЕрд░реЗрдВрдЬрдСрд╡рд░рд░рд╛рдЗрдб


рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд╛рдЗрдЬ рдореЗрдЬреЛрд╡рд░рд░рд╛рдЗрдб (рдЖрдХрд╛рд░ рдЙрдкрд▓рдмреНрдз рд╣реИ) рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд▓реЙрдЬрд┐рдХ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдирд┐рдореНрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
  1. рдмрдЪреНрдЪреЛрдВ рдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ - рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдХрд╛рд░ред рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдЖрдХрд╛рд░ред рдкреНрд░рдХрд╛рд╢ = рдбрдмрд▓редрдкреЛрд╕рд┐рдЯрд┐рд╡ рдЗрдирдлрд┐рдирд┐рдЯреА
  2. рдмрдЪреНрдЪреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдирд╛ рдкреВрд░рд╛ рдЖрдХрд╛рд░ рджреЗрдВ
  3. рдпрджрд┐ рд╣рдо рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ
  4. рдЕрдиреНрдпрдерд╛, рд╣рдореЗрдВ рдмрдЪреНрдЪреЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдорд╛рдк рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдкреЙрдЬрд┐рдЯрд┐рд╡рдЗрдиреНрдлрд┐рдирд┐рдЯреА рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдЙрдкрд▓рдмреНрдз рдЖрдХрд╛рд░ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдЪрд░рдг рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рддрд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  5. рдпрджрд┐ рд╣рдо рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЧрдП рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдВред рдпрджрд┐ рд╣рдо рдЙрдкрд▓рдмреНрдз, рдкреНрд░рдмрдВрдзрди, рдпрд╛ рдЙрдкрд▓рдмреНрдз рдореВрд▓реНрдп рд╕реЗ рдЕрдзрд┐рдХ рдиреНрдпреВрдирддрдо рдореВрд▓реНрдп рдХреЗ рднреАрддрд░ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рд╕рдВрд░рдХреНрд╖рд┐рдд рдЖрднрд╛рд╕реА рдЖрдХрд╛рд░ ArrangeOverride (рдЖрдХрд╛рд░ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдВ) - рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рд╕реАрдорд╛рдУрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЗ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрд▓рдмреНрдз рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдХреЛ рдорд╛рдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ DesiredSize рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ DesiredSize = availableSizeред рдпрд╣реА рд╣реИ, рдХрд┐рд╕реА рдиреЗ рд╣рдорд╛рд░реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╡рд╣рд╛рдВ рдЙрдкрд╛рдп рддрд░реНрдХ рдХрд╛ рдореВрд▓реНрдп рд▓рд┐рдЦрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм ArrangeOverride рдХреЛ рдЖрдЧреЗ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдлрд┐рд░ рд╕реЗ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдореЗрдЬрд░рдУрд╡рд░рд╛рдЗрдб рд╕реЗ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ ред

рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдФрд░ рдпрд╣реА рд╣реЛрддрд╛ рд╣реИред

рдЕрдЧрд░ FrameworkElementред рдорд░реНрдЬрд░ рдХреЛ рдЕрдирдВрдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдореЗрдЬрд╝рд░рд╡реНрдпреВрдбреНрд░рд╛рдЗрдб рд░рд┐рдЯрд░реНрди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ , FrameworkElement.MeasureCore рдЗрд╕реЗ рдХреНрд░реЙрдк рдХрд░реЗрдЧрд╛ рдФрд░ DesiredSize <= availableSize рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ ред рдФрд░ рдШрд░ рдкрд░ рд╣рдорд╛рд░реЗ DesiredSize рдХреИрд╢, рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ ArrangeOverride рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ FrameworkElement рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЙрдкрд╛рдп рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рдЙрд╕реЗ рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд╛рдЯ рджреЗрдирд╛ рдкрдбрд╝реЗред

рдЕрдиреНрдпрдерд╛, рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреНрд░рд┐рдб рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдЪрд▓реА рдЬрд╛рдПрдВрдЧреА рдЬреЛ рдХрд┐ DesiredSize > availableSize рдХреЛ рд▓реМрдЯрд╛ рджреЗрддреА рд╣реИрдВред рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ FrameworkElement DesiredSize рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЕрд░реЗрдВрдЬ рд╕рдордп рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ ArrangeOverride рдкрджреНрдзрддрд┐ рдХреЛ DesiredSize рдорд╛рди рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдореЗрдЬрд░рдУрд╡рд░рд╛рдЗрдб рдкрд░ рд▓реМрдЯ рдЖрдПред рдФрд░ рд╣рдо ArrangeOverride рдкрд░ рдмрдЪреНрдЪреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж, FrameworkElement.ArrangeCore , рдЬрд┐рд╕рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рдорд╛рд░рд╛ ArrangeOverride рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЧреНрд░рд┐рдб рдореЗрдВ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦрддреЗ рд╣реИрдВред рдФрд░ рдХреМрди рд╕рд╛ рднрд╛рдЧ рдХреНрд╖реИрддрд┐рдЬ / рд╡рд░реНрдЯрд┐рдХрд▓ рдПрд▓рд┐рдЧрдореЗрдВрдЯ рдФрд░ рдЕрдиреНрдп рдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗ - рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░рд╛ DesiredSize рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ ArrangeOverride рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡рд╛рд░рд┐рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп , рд╣рдореЗрдВ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ - рд╡рд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░реЗрдЧрд╛ред рдФрд░ рдЕрдЧрд░ рд╣рдореЗрдВ рдХрд┐рд╕реА рдРрд╕реЗ рдкреИрдирд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ DesiredSize > availableSize рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдпрд╛ рддреЛ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рд╣рдореЗрдВ UIElement рдХреЛ рдПрдХ рд╕реНрддрд░ рдиреАрдЪреЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ ( CoreCoreCoreCoreCore ) рдФрд░ ArrangeCore рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ ред

рдЗрди рд╕рднреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдмрдЯрди рдЗрдирд╣реЗрд░рд┐рдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЛ рдореЗрдЬрд░рдСрд╡рд░реНрд░рд╛рдЗрдб рдкрд░ рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ , рдФрд░ рдмрдЯрди рдХреЛ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ (рдЬреИрд╕реЗ, 50x50) рдХреЗ рд╕рд╛рде рдЧреНрд░рд┐рдб рд╕реЗрд▓ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдмрдЯрди рдХрд╛рдЯрд╛ рдЬрд╛рдПрдЧрд╛ред

protected override Size MeasureOverride(Size constraint) {
return new Size(80, 80);
}


рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ http://social.msdn.microsoft.com/ рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд WPF рд╕реНрд░реЛрддреЛрдВ (UIElement рдФрд░ FrameworkElement classes) рд╕реЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рд╛рд░ рдХреЗ рд╕рд╛рде рдЯреБрдХрдбрд╝реЗ рдХрд░реЗрдВред

WPF рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдбрд╛рдЙрдирд▓реЛрдб .Net - 4)ред

UPD: afsherman рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ WPF рд╕реНрд░реЛрдд рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред рдХрд┐рд╕рдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ ReSharper рд╕реНрд░реЛрдд рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ Ctrl + рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд░реНрдЧ (рд╡рд┐рдзрд┐ / рд╕рдВрдкрддреНрддрд┐, рдЖрджрд┐) рдХреЗ рдирд╛рдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

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


All Articles