рдирдорд╕реНрдХрд╛рд░!
рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдИрдЯреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдореЗрд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рд╣реИрдВ:
рдХреНрдпрд╛ рдмрдЯрди (рдмрдЯрди) рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рд╕рдХреНрд╖рдо рд╣реИ?
рдЬрдм рдмрдЯрди рдХреЛ рд╕рдХреНрд╖рдо = рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрдЯрди рдкреАрд▓рд╛ рдХреНрдпреЛрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдЗрдХрди рдЙрдЬреНрдЬреНрд╡рд▓ рд░рд╣рддрд╛ рд╣реИ? рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл-рдореЛрдб)?
рдХреНрдпреЛрдВ WinForms рдореЛрдб рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рдХреЗ рдмрдЯрди рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ - рдХрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИ? рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЫрд╡рд┐рдпрд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ рд╕реЗ рдХрдо рдФрд░ рдзреБрдВрдзрд▓реА рд╣реЛрддреА рд╣реИрдВред
рдХреЛрдИ рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЕрдЧрд░ рдЙрдирдХреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ (рдкреИрдирд▓ + рд▓реЗрдмрд▓?)
рдХрд╕реНрдЯрдордХрдВрдЯреНрд░реЛрд▓ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЧреБрдгреЛрдВ рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдВрдХрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЗрдВ рдбреНрд░рд╛рдпрдмрд▓ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдпрд╛ рдХреНрдпрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рдЙрдкрд╛рдп рд╣реИ?
рдХреНрдпрд╛ рдЧреНрд░рд┐рдб рд╡реНрдпреВ рдХреЙрд▓рдо рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрд░реЗрдЦрдг рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдореИрдВ рд╡рд░реНрддрдорд╛рди рд╕рдХреНрд░рд┐рдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдпрджрд┐ рдХрдИ рдПрд╕рдбреАрдЖрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╡рд┐рдВрдбреЛ рд╣реИрдВ рдЬреЛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ рдмрд░рд╛рдмрд░ рд╣реИрдВ)?
рдХреНрдпрд╛ рдЖрдк рднрд╡рд┐рд╖реНрдп рдореЗрдВ NUnitForms рдЬреИрд╕рд╛ рдЗрдВрдЬрди рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ - UI рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?
рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдореЛрдб рдореЗрдВ, рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯрд╕рд╛рдЗрдЬ рд╕рдВрд╡рд╛рдж рдХреЛ рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрдардмрдВрдзрди рд╣реИ, рдФрд░ рд╕рдВрд╡рд╛рдж рд╕реНрд╡рдпрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдХрд╛рд░ рд▓реЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, WinForms рдореЛрдб рдореЗрдВ рд╕рдВрд╡рд╛рдж рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдШрдЯрдХ рдареАрдХ рд╕реЗ рдкрдВрдХреНрддрд┐рдмрджреНрдз рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред WinForms - рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд?
рдХреНрдпрд╛ рдЖрдк рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрд░реЗ,
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореБрджреНрджреЗ рдЦреЛрд▓рдиреЗ рдЪрд╛рд╣рд┐рдП, рдореИрдВ рдХреЗрд╡рд▓ рдЖрдкрдХреА рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред
Eto рдХрд╛ рд▓рдХреНрд╖реНрдп рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ @cwensley рдиреЗ рдЙрдард╛рдП рдЧрдП рдХреБрдЫ рдореБрджреНрджреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдерд╛), рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдореВрд▓ рджрд┐рдЦрдирд╛ рдФрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИ, рдпрд╣реА рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИред рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
C#
new GridColumn()
{
HeaderText = header,
DataCell = new TextBoxCell()
{
Binding = binding,
TextAlignment = TextAlignment.Center,
VerticalAlignment = VerticalAlignment.Center
},
};
рдореИрдВ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдорд┐рдВрджрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ "рдХреНрдпрд╛ рдмрдЯрди (рдмрдЯрди) рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рд╕рдХреНрд╖рдо рд╣реИ?" @SlowLogicBoy рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╕реНрдЯрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рдеред
рдореИрдВ рдЬрд┐рддрдирд╛ рджреВрд░ рдЬрд╛ рд╕рдХрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ:
Style.Add<Eto.Wpf.Forms.Controls.ButtonHandler>(null, handler => ?????? ));
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?
рдзрдиреНрдпрд╡рд╛рдж
рдореИрдВ wpf рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдпрд╣реА рджреЗ рд╕рдХрддрд╛ рд╣реВрдБ:
using swc = System.Windows.Controls;
Style.Add<Eto.Wpf.Forms.Controls.ButtonHandler>(null, handler => {
var grid = handler.Control.Content as swc.Grid;
if(grid == null) return; //Something in ButtonHandler changed
var imageCtrl = grid.GetChildOfType<swc.Image>().SingleOrDefault();
if(imageCtrl == null) return; //Something in ButtonHandler changed
//TODO: Stuff with imageCtrl
});
static IEnumerable<T> GetChildOfType<T>(this swc.Grid self)
{
foreach (var item in self.Children)
{
if(item is T ctrl)
yield return ctrl;
}
}
wpf рдХреЗ рд▓рд┐рдП Eto рдмрдЯрди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдзрдиреНрдпрд╡рд╛рдж @SlowLogicBoy , рдЖрдкрдХрд╛ рдХреЛрдб рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рдЧрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рдП :)
рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
Style.Add<Eto.Wpf.Forms.Controls.ButtonHandler>(null, handler =>
{
var grid = handler.Control.Content as swc.Grid;
if (grid == null)
return;
var image = grid.Children.OfType<swc.Image>().FirstOrDefault();
if (image == null)
return;
image.Stretch = System.Windows.Media.Stretch.None;
});
рдзрдиреНрдпрд╡рд╛рдж @SlowLogicBoy рдЙрд╕рдХреА рдорджрдж рдХреЗ рд▓рд┐рдП
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрд░реЗ,
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореБрджреНрджреЗ рдЦреЛрд▓рдиреЗ рдЪрд╛рд╣рд┐рдП, рдореИрдВ рдХреЗрд╡рд▓ рдЖрдкрдХреА рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред
Eto рдХрд╛ рд▓рдХреНрд╖реНрдп рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдПрдХ рд╣реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ @cwensley рдиреЗ рдЙрдард╛рдП рдЧрдП рдХреБрдЫ рдореБрджреНрджреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдерд╛), рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдореВрд▓ рджрд┐рдЦрдирд╛ рдФрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИ, рдпрд╣реА рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИред рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
C# new GridColumn() { HeaderText = header, DataCell = new TextBoxCell() { Binding = binding, TextAlignment = TextAlignment.Center, VerticalAlignment = VerticalAlignment.Center }, };