Maui: [рдХрд▓реНрдкрдирд╛] рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдордИ 2020  ┬╖  56рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/maui

рдЪреЗрддрд╛рд╡рдиреА: рдпрд╣ рдпреБрдХреНрддрд┐ рдЕрднреА рднреА рдПрдХ WIP рд╣реИ, рд╣рдо рдЕрднреА рднреА рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рд╡рд┐рд╡рд░рдг

рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдорд▓реНрдЯреА-рдЯрд╛рд░рдЧреЗрдЯрд┐рдВрдЧ рдФрд░ рд╕рд┐рдВрдЧрд▓-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг

entryRenderer.cs

public partial class EntryRenderer {
   public static PropertyMapper<IView> ViewMapper = new PropertyMapper<IView> {

     // Add your own method to map to any property         
     [nameof(IView.BackgroundColor)] = MapBackgroundColor

   };
}

entryRenderer.iOS.cs

// You donтАЩt need to register a new renderer.
public partial class EntryRenderer
{
     // You know what method to call because you named it!
   public static void MapBackgroundColor (IViewRenderer renderer, IView view)
     {
        // You donтАЩt need to call any base methods here or worry about order.

        // Every renderer is consistent; you know where the native view is.
          var nativeView = (NativeView)renderer.NativeView;
          var color = view.BackgroundColor;

          if (color != null) {

            // Phew! That was easy!         
            nativeView.BackgroundColor = UIColor.FromRGB (204, 153, 255);
          }
     }
}

рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдорд╛рдирдХреАрдХрд░рдг

рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдкрдВрдЬреАрдХрд░рдг

рд░реЗрдВрдбрд░рд░ рд░рдЬрд┐рд╕реНрдЯреНрд░рд╛рд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗрд╡рд╛ рдкрд░ рдореМрдЬреВрдж рд╣реЛрдЧрд╛ рдФрд░ serviceCollection.Get<IRendererRegistrar>() рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд░реЗрдВрдбрд░рд░ рдХрд┐рд╕ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ

рд░реЗрдВрдбрд░рд░реНрд╕ рдкрд░ рдЗрдВрдЯрд░рдлреЗрд╕

рдореИрдкрд░ рдЕрд╡рдзрд╛рд░рдгрд╛

рдкреНрд░реЙрдкрд░реНрдЯреА рдореИрдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдПрдХ рдкрддрд▓рд╛ рд░реЗрдВрдбрд░рд░ рд╕реНрд╡рдпрдВ рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдШреЛрд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рд╕рдВрдкрддреНрддрд┐ рдореИрдкрд░ рд╕рдВрдкрддреНрддрд┐ public static рдФрд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░реЙрдкрд░реНрдЯреА рдореИрдкрд░ рдлреАрдбрдмреИрдХ рд▓реВрдк рдореЗрдВ рдХреЛрдИ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддрд╛ (рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЯреЗрдХреНрд╕реНрдЯ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛)

TODO: рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдореИрдкрд░ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред string рдпрд╛ object ? рдЬрдм рд╣рдо рд╕рдВрджрд░реНрднреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рд╕реЗ рдмрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рдмрд╛рдЗрдВрдбреЗрдмрд▓рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ)

рд▓реАрдЧреЗрд╕реА рдХрд╕реНрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ

рдкреБрд░рд╛рдиреЗ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ

рдореМрдЬреВрджрд╛ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдХреИрд╕реЗ рдкреВрд░рдХ рдХрд░реЗрдВ

рдЗрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдореЙрдбрд▓ рдкреНрд░реЙрдкрд░реНрдЯреА рдореИрдкрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рдирдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕реЗ рдХреЗрд╡рд▓ рдирдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рдореИрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЙрдкрд╡рд░реНрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд░реЗрдВрдбрд░рд░ рдХреЛ рдЙрдкрд╡рд░реНрдЧрд┐рдд рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИред

рдкрд╢реНрдЪ рд╕рдВрдЧрддрддрд╛

рд╣рдо рдореМрдЬреВрджрд╛ рдХрд╕реНрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд╕рд╛рде рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдкреБрд░рд╛рдиреЗ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рдЙрдкрд╡рд░реНрдЧ рдЗрд╕ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ

рдХрдард┐рдирд╛рдИ: рдмрд╣реБрдд рдЕрдзрд┐рдХ

proposal-open slim renderer

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреГрдкрдпрд╛ рд╣рд░ рдХреАрдордд рдкрд░ рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд░рд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВред рдпрд╣ рдХреБрдЫ рдирдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХреНрд╕рдПрдл рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдЖрдк рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 56 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Xamarin wpf рд░реЗрдВрдбрд░рд░реНрд╕ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдПрдВрдбреНрд░реЙрдЗрдб рд░реЗрдВрдбрд░рд░реНрд╕ рдЬреИрд╕реЗ рдХрд┐ ButtonRenderer рддреЗрдЬ рд╣реИрдВ, рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ "рдлрд╛рд╕реНрдЯ" рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред
рдХреНрдпрд╛ рдпреЗ рд░реЗрдВрдбрд░рд░реНрд╕ рддреЗрдЬ рд╣реЛрдВрдЧреЗ рдпрд╛ рдирд╣реАрдВ?
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

@ysmoradi рд╣рд╛рдБ! рдпреЗ рдирдП рд░реЗрдВрдбрд░рд░реНрд╕ рддреЗрдЬреА рд╕реЗ рд░реЗрдВрдбрд░рд░ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ (рдпрд╛рдиреА, рдореБрдЦреНрдп рджреГрд╢реНрдп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░реИрдкрд░ рджреГрд╢реНрдп рдирд╣реАрдВ)ред рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рд╣рд░ рдХреАрдордд рдкрд░ рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд░рд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВред рдпрд╣ рдХреБрдЫ рдирдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХреНрд╕рдПрдл рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдЖрдк рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдВрдбрд░рд░ рдХреЗ рдмрдЬрд╛рдп рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдЬреИрд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░рдг рдмрдЯрди рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдХреА-рддреЗрдЬ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рдеред

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рдПрдХ рдЦрд░рд╛рдм рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ xamarin рдирд┐рдпрдВрддреНрд░рдг рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реАрдорд╛ рдХреЗ рдХрд╛рд░рдг UWP рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ, UWP рдореЗрдВ рдЫрд╛рдпрд╛ред рдЖрдкрдХреЛ рдХреЛрдиреЗ рдХреЗ рдмрдЯрди рд╕реЗ рдХреЛрдиреЗ рдХреА рдЫрд╛рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ (рдмреЗрд╢рдХ, рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджреВрд╕рд░реА рдмрд╛рдд рд╣реИ)ред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реЗ рдРрдк рдХреЛ рдХрд╕реНрдЯрдо 2 рдбреА рдХреИрдирд╡рд╛рд╕ рдореЛрдмрд╛рдЗрд▓ рдРрдк рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрд╕реНрдХрдЯреЙрдк рдРрдк рдпрд╛ рдЬрдЯрд┐рд▓ рдРрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреИрд╕реЗ рдбреНрд░реИрдЧ-рдбреНрд░реЙрдк, рдЯреЗрдХреНрд╕реНрдЯ рдЪрдпрди, рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рдЖрджрд┐ред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реЗ рдРрдк рдХреЛ рдХрд╕реНрдЯрдо 2 рдбреА рдХреИрдирд╡рд╛рд╕ рдореЛрдмрд╛рдЗрд▓ рдРрдк рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрд╕реНрдХрдЯреЙрдк рдРрдк рдпрд╛ рдЬрдЯрд┐рд▓ рдРрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреИрд╕реЗ рдбреНрд░реИрдЧ-рдбреНрд░реЙрдк, рдЯреЗрдХреНрд╕реНрдЯ рдЪрдпрди, рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рдЖрджрд┐ред

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

рдЖрдк рдЗрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯреАрдо рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рд╕рдордп рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ .net 6 рдХреЗ рд╕рд╛рде рдПрдХ "рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛" рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд░реЙрд╕рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдпреВрдЖрдИ рдврд╛рдВрдЪрд╛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдФрд░ рдпрд╣ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рд╕рдордп-рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╣реИ рдФрд░ рд╣реЛрдирд╛ рднреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╕реНрдЯрдо 2d рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдн рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо" рдХрд╣рд▓рд╛рдиреЗ рдХреЗ рдпреЛрдЧреНрдп рд╣реИрдВред Xamarin рд░реВрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдФрд░ рдЖрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдмрд╣реБрдд рдмрдбрд╝реА рдкреНрд░рдЧрддрд┐ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред Microsoft рдФрд░ xamarin рдЯреАрдореЛрдВ рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЪрддреБрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИрдВ рдФрд░ рд╡реЗ рд╢рд╛рдпрдж рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рд╢рд╛рдпрдж рдЯреНрд░рдореНрдк рдХрд╛рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ http://avaloniaui.net/ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдВрдмрдВрдз рднреА рд░рдЦрддреЗ рд╣реИрдВред

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

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП 4-рд╡реЗрдВ рд░реЗрдВрдбрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреНрд░реЗ рдПрдХ рд╕рдореГрджреНрдз рдбрд┐рдЬрд╛рдЗрди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП 100% рдЗрд╕реЗ рдмрджрд▓ рджреЗрдЧрд╛,
рдмреИрдХ рдХреЙрдореНрдмреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдЙрди 3 рдХреЛ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди "рдбреНрд░рд╛ рдЗрдЯ рдпреЛрд░ рдбрд┐рдпрд░ рдбреЗрд╡рд▓рдкрд░"_skia_render рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП 90% рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрдВред

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

  • рд╕рд╛рдЭрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ _property_ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ PropertyChanged рдИрд╡реЗрдВрдЯ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реАрдзреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
  • рд╕рд╛рдЭрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдПрдХ _method_ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдФрд░ рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд░реЗрдВрдбрд░рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╡рд┐рдзрд┐ рдХреЛ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реАрдзреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рдкрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

рдпрд╣ рд▓рдВрдмрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдорд╛рдЙ рдкрд░ рдХреБрдЫ "рдмреЗрд╕рдмреЙрд▓ рдХреЗ рдЕрдВрджрд░" рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред
https://www.youtube.com/watch?v=_MGh3xipWm4

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

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

рдпрд╣ рд╡рд┐рд╖рдп рд╕реЗ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЗрд╕ рд╕рдЯреАрдХ рдЪреАрдЬрд╝ рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

рд╕реНрдореГрддрд┐ SKCanvasView (рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реНрдХреА) рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ? рдХреНрдпрд╛ рд╣рд░ рдХреЛрдИ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдореЗрдореЛрд░реА рд▓реЗрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддрд╛ рд╣реИ?

рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдврд╛рд▓ рдирд┐рдпрдВрддреНрд░рдг (рд╕реНрдХрд┐рдпрд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд░реЗрдВрдбрд░рд░) рдерд╛ рдФрд░ рдЙрд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд░реНрдз рдкрд╛рд░рджрд░реНрд╢реА рдмрдЯрди (рд╕реНрдХрд┐рдпрд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд░реЗрдВрдбрд░рд░) рдерд╛, рдЬреЛ рдХрд┐ рджреЛ рдмрд╛рд░ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рд▓реЗрдЧрд╛, рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рдВрджрд░реНрдн рдХрд┐рд╕реА рддрд░рд╣ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд░ рд╕реНрдХреАрдпрд╛ рдЧреИрд░-рд╕реНрдХрд┐рдпрд╛ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реНрдХреАрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлреЙрд░реНрдо рдореЗрдВ рдХреБрдЫ рдлреИрдВрд╕реА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдирд┐рдпрдВрддреНрд░рдг рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рд╕реНрдореГрддрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЪрд┐рдВрддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдирд╣реАрдВ рдХреА рд╣реИред

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

рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд▓реЛрдЧ рд╕реНрдХреА рдХреЗ рдкреНрд░рддрд┐ рдЬреБрдиреВрдиреА рдХреНрдпреЛрдВ рд╣реИрдВ? рдПрдХ рдЕрдЪреНрдЫрд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реНрдкреЗрдХ рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реЛрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рд╕реНрдХреАрдпрд╛ (рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯ 2 рдбреА рдпрд╛ рдУрдкрдирдЬреАрдПрд▓ рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рдд рдХреЛ рдЪрд┐рдВрддрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рд╕рджрд┐рдпреЛрдВ рдкрд╣рд▓реЗ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдХреЗ рд╕рд╛рде рд▓реБрдХрд▓реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬрд╣рд╛рдВ
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдУрдПрд╕ рдФрд░ рдврд╛рдВрдЪреЗ рдореЗрдВ рдореМрдЬреВрджрд╛ рдШрдЯрдХреЛрдВ рдкрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХреЗ рдПрдХ рдФрд░ рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдПрдХреНрд╕рдПрдПрдордПрд▓ -рдЖрдзрд╛рд░рд┐рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ

рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдПрдПрдордПрд▓ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╡рд╛рджрд╛, рд▓реБрдХрд▓реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рдЬрд╣рд╛рдВ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Xamarin рдлреЙрд░реНрдореНрд╕ рдиреЗ рдЗрд╕ рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд┐рдирд╛ XAML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдХрдордЬреЛрд░ рдмрд┐рдВрджреБ рдерд╛, рдХреЗрд╡рд▓ рд╡рд░реНрд╖реЛрдВ рдмрд╛рдж рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдбреНрд░реЙрдЗрдВрдЧ рд╕реНрдкреЗрдХ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдорд╛рдирд╛! рдФрд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдРрдк рдХреА рдЬрд╝рд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬрд╝ рдХрд╛ 99% рд╣рд┐рд╕реНрд╕рд╛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ:

  • рдмреЙрд░реНрдбрд░ (рдбреНрд░реЙрдк рд╢реИрдбреЛ рдФрд░ рдЧреЛрд▓ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рд╕рд╣рд┐рдд)
  • рд░реЗрдЦрд╛рдПрдВ/рджреАрд░реНрдШрд╡реГрддреНрдд/рдЖрдпрдд
  • рд╕рд╛рджрд╛ рдкрд╛рда рдкреНрд░рддрд┐рдкрд╛рджрди
  • рд╕рд╛рджрд╛ рдкрд╛рда рдЗрдирдкреБрдЯ
  • рд░рд┐рдЪ рдЯреЗрдХреНрд╕реНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ
  • рд░рд┐рдЪ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ
  • рдПрдЪрдЯреАрдПрдордПрд▓ рдкреНрд░рддрд┐рдкрд╛рджрди
  • рдЫрд╡рд┐ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛
  • рдСрдбрд┐рдпреЛ/рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛
  • рдареЛрд╕ рдФрд░ рд░реИрдЦрд┐рдХ / рд░реЗрдбрд┐рдпрд▓ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдмреНрд░рд╢

XF рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЗрддрдиреЗ рдлреВрд▓реЗ рд╣реБрдП рд╣реЛ рдЧрдП рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рднреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рднреАрддрд░ рдореМрдЬреВрджрд╛ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирдП рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддрд░реНрдХ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░рдд рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛, рд╕рдмрд╕реЗ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рдЬрдм рдЖрдЗрдЯрдо рдирд┐рдпрдВрддреНрд░рдг рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ ( VirtualizingStackPanel рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЖрдЗрдЯрдо рд╡реНрдпреВрдЕрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ)ред рд▓реЗрдХрд┐рди рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдУрдкрди рд╕реЛрд░реНрд╕ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдЕрдм рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рдПрдордПрдпреВрдЖрдИ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╡рд╣ рд╕рдордп рд╣реИ рдЬрдм рдРрд╕рд╛ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрдк рдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдХрд╛ 99% рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

Uno рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

@velocitysystems

рд╕рд╛рдЭрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХреЛ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реАрдзреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣реА рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд▓рдХреНрд╖реНрдп рднреА рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рджреВрд╕рд░реА рддрд░рдл рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдмрд╛рдЗрдВрдбреЗрдмрд▓рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдЖрдИрдПрдирдкреАрд╕реА рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ

рдпрд╣реА рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд▓рдХреНрд╖реНрдп рднреА рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рджреВрд╕рд░реА рддрд░рдл рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдмрд╛рдЗрдВрдбреЗрдмрд▓рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдЖрдИрдПрдирдкреАрд╕реА рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ

рддреЛ рд░реЗрдВрдбрд░рд░ рдкрд░ рдПрдХ рд╡рд┐рдзрд┐ рдврд╛рдВрдЪреЗ рдЬрдм рднреА рдХреЛрдИ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ BindableProperty рдореВрд▓реНрдп рд░реЗрдВрдбрд░рд░ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрджрд▓рддрд╛ рд╣реИ PropertyChanged ?

@legistek рд╕рд╣реА

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ

рддреЛ рд░реЗрдВрдбрд░рд░реНрд╕ рд╕рд┐рд░реНрдл IButton рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдФрд░ рдлрд┐рд░ System.Maui рд░реЗрдВрдбрд░рд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдЬреЛ рдЕрднреА рд╡рд┐рд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рдкрд╛рд╕ Xamarin.Forms.Core рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ рд╕реНрдкрд╛рдЗрдХ рдореЗрдВ рдЪреЗрдХ рдХрд┐рдпрд╛ рд╣реИ
https://github.com/dotnet/maui/pull/66

рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ

рдореИрдВ рдЖрдЬ 3:30 рдкреАрдбреАрдЯреА рд╕рдордп рдкрд░ @davidortinau рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░реАрдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рд╣рдо рд╕реНрд▓рд┐рдо

https://www.twitch.tv/microsoftdeveloper

рд╣рдорд╕реЗ рдЬреБрдбрд╝реЗрдВ! рдЗрд╕рдХреА рдЬрд╛рдВрдЪ - рдкрдбрд╝рддрд╛рд▓ рдХрд░реЗрдВ! рдФрд░ рд╕рд╡рд╛рд▓ рдкреВрдЫреЛ!

@PureWeen рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ред рдХреНрдпрд╛ YouTube рдкрд░ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА?

рдпрд╣реА рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд▓рдХреНрд╖реНрдп рднреА рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рджреВрд╕рд░реА рддрд░рдл рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдмрд╛рдЗрдВрдбреЗрдмрд▓рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдЖрдИрдПрдирдкреАрд╕реА рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред

рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд рд╕реБрдзрд╛рд░ред рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд╛рдЙ рдХреЗ рдХрджрдо рдХреЗ рд╕рд╛рде, рдХрдИ рд░реЗрдВрдбрд░рд░реНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬрдЯрд┐рд▓ рд╡рд┐рд░рд╛рд╕рдд рдореЙрдбрд▓ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд░рдЪрдирд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдЖрдЬ #66 рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

#66 рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрддрд▓реЗ рд░реЗрдВрдбрд░рд░реНрд╕ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп 'рдЪрд╛рд░рд╛-рдФрд░-рд╕реНрд╡рд┐рдЪ' рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдФрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдмрд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░:

  • рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдЬреАрд╕реА рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЦрд╛рд╕рдХрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЬрд╣рд╛рдВ рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдг рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рдмреАрдЪ рдПрдХ рдмреЗрдореЗрд▓ рд╣реИ? рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЪрд╛рдЗрд▓реНрдб рд╡реНрдпреВ рдореЗрдВ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдЬреЛ рдЦрддрд░рдирд╛рдХ ObjectDisposedException ред
  • рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ Effect рдХреЗ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ? рдкреНрд░рднрд╛рд╡ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ рд╡реЗ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рд▓реЗрдЖрдЙрдЯ рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
  • рдирдП рд░реЗрдВрдбрд░рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде 'рдЯреВ-рд╡реЗ' рдкреНрд░реЙрдкрд░реНрдЯреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдЗрдП рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдПрдХ рд╣реИ MediaElement рдПрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде ( TimeSpan ) рд╕рдВрдкрддреНрддрд┐ред рд╕реЗрдЯрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдЯреНрдЯрд░ рдиреЗрдЯрд┐рд╡ рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ рдпрд╛рдиреА AVPlayer , MediaPlayer рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд╕рд╛рде _getter_ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ?

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

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

рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ? рдкреНрд░рднрд╛рд╡ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ рд╡реЗ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рд▓реЗрдЖрдЙрдЯ рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

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

рдирдП рд░реЗрдВрдбрд░рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде 'рдЯреВ-рд╡реЗ' рдкреНрд░реЙрдкрд░реНрдЯреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ (рдЯрд╛рдЗрдорд╕реНрдкреИрди) рд╕рдВрдкрддреНрддрд┐ рд╡рд╛рд▓рд╛ рдореАрдбрд┐рдпрд╛ рдПрд▓рд┐рдореЗрдВрдЯ рд╣реИред рд╕реЗрдЯрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдЯрд░ рдиреЗрдЯрд┐рд╡ рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ рдпрд╛рдиреА рдПрд╡реАрдкреНрд▓реЗрдпрд░, рдореАрдбрд┐рдпрд╛рдкреНрд▓реЗрдпрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд╕рд╛рде рдЧреЗрдЯрд░ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ?

рд╣рдо рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ @Clancey рд▓реЗрдХрд┐рди https://github.com/dotnet/maui/blob/slim-renderers/Maui.Core/PropertyMapper.cs#L91

рдирдП рд░реЗрдВрдбрд░рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде 'рдЯреВ-рд╡реЗ' рдкреНрд░реЙрдкрд░реНрдЯреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ (рдЯрд╛рдЗрдорд╕реНрдкреИрди) рд╕рдВрдкрддреНрддрд┐ рд╡рд╛рд▓рд╛ рдореАрдбрд┐рдпрд╛ рдПрд▓рд┐рдореЗрдВрдЯ рд╣реИред рд╕реЗрдЯрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдЯрд░ рдиреЗрдЯрд┐рд╡ рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ рдпрд╛рдиреА рдПрд╡реАрдкреНрд▓реЗрдпрд░, рдореАрдбрд┐рдпрд╛рдкреНрд▓реЗрдпрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд╕рд╛рде рдЧреЗрдЯрд░ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ?

рд╣рдо рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ @Clancey рд▓реЗрдХрд┐рди https://github.com/dotnet/maui/blob/slim-renderers/Maui.Core/PropertyMapper.cs#L91

рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред рддреЛ рдПрдХреНрд╢рдирдореИрдкрд░ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдкреНрд░реЙрдкрд░реНрдЯреАрдореИрдкрд░ рдЬреИрд╕рд╛ рд╣реА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯрд▓реЗрдореЗрдВрдЯ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, WebView, GoBack рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдк рдЗрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреВ рд╡реЗ рдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рдкреНрд░рд╡реЗрд╢ред рдЬрдм рдЯреЗрдХреНрд╕реНрдЯ рд╡реИрд▓реНрдпреВ рдПрдВрдЯреНрд░реА рдкрд░ рдЪрд╛рдВрд╕ рд╣реЛрддрд╛ рд╣реИред IEntry рдореЗрдВ string Text {get;set;} рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдореАрдбрд┐рдпрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ 2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЬрдм рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдмрд╕ рд╕реНрдерд┐рддрд┐/рд╕рдордп рдХреЛ рд╡рд╛рдкрд╕ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкреВрдЫреЗрдВред рддреБрдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реЛред xplat рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкрд╛рд╕ рд░реЗрдВрдбрд░рд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред view.Renderer.NativeView as NativeMediaView рдЕрдм рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдХреЛрдИ рднреА рд╕рдВрдкрддреНрддрд┐ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ!

Build . рдХреЗ рджреМрд░рд╛рди рд╣рдорд╛рд░реА рд╕реНрдЯреНрд░реАрдо рдХреЗ рдХреБрдЫ рд╡реАрдбрд┐рдпреЛ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ

@Clancey рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рд╣реЛрдЧрд╛
https://www.youtube.com/watch?v=_MGh3xipWm4

рдореИрдВ рдпрд╣рд╛рдВ рдбреЗрд╡рд┐рдб рдХреЗ рд╕рд╛рде рдЙрди рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реНрдкрд░реНрд╢ рдХрд░рддрд╛ рд╣реВрдВ
https://www.youtube.com/watch?v=lAmwjfZY1IM

рдирдП рд░реЗрдВрдбрд░рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде 'рдЯреВ-рд╡реЗ' рдкреНрд░реЙрдкрд░реНрдЯреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ (рдЯрд╛рдЗрдорд╕реНрдкреИрди) рд╕рдВрдкрддреНрддрд┐ рд╡рд╛рд▓рд╛ рдореАрдбрд┐рдпрд╛ рдПрд▓рд┐рдореЗрдВрдЯ рд╣реИред рд╕реЗрдЯрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдЯрд░ рдиреЗрдЯрд┐рд╡ рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ рдпрд╛рдиреА рдПрд╡реАрдкреНрд▓реЗрдпрд░, рдореАрдбрд┐рдпрд╛рдкреНрд▓реЗрдпрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд╕рд╛рде рдЧреЗрдЯрд░ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ?

рд╣рдо рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ @Clancey рд▓реЗрдХрд┐рди https://github.com/dotnet/maui/blob/slim-renderers/Maui.Core/PropertyMapper.cs#L91

рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред рддреЛ рдПрдХреНрд╢рдирдореИрдкрд░ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдкреНрд░реЙрдкрд░реНрдЯреАрдореИрдкрд░ рдЬреИрд╕рд╛ рд╣реА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯрд▓реЗрдореЗрдВрдЯ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, WebView, GoBack рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдПред рдЖрдк рдЗрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреВ рд╡реЗ рдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рдкреНрд░рд╡реЗрд╢ред рдЬрдм рдЯреЗрдХреНрд╕реНрдЯ рд╡реИрд▓реНрдпреВ рдПрдВрдЯреНрд░реА рдкрд░ рдЪрд╛рдВрд╕ рд╣реЛрддрд╛ рд╣реИред IEntry рдореЗрдВ string Text {get;set;} рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдореАрдбрд┐рдпрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ 2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЬрдм рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдмрд╕ рд╕реНрдерд┐рддрд┐/рд╕рдордп рдХреЛ рд╡рд╛рдкрд╕ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкреВрдЫреЗрдВред рддреБрдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реЛред xplat рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкрд╛рд╕ рд░реЗрдВрдбрд░рд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред view.Renderer.NativeView as NativeMediaView рдЕрдм рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдХреЛрдИ рднреА рд╕рдВрдкрддреНрддрд┐ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ!

рдпрд╣рд╛рдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдмрд╛рдд рд░рд┐рдХреЙрд░реНрдбреНрд╕ рд╣реИрдВ рдЬреЛ рд╕реА # 9 рдореЗрдВ рдЖ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ init рд╕рдВрдкрддреНрддрд┐ рдПрдХреНрд╕реЗрд╕рд░ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рджреЛ-рддрд░рдлрд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдкрд░ рдХреЛ with рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╢реБрджреНрдз рдПрдорд╡реАрд╡реАрдПрдо рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╢реБрджреНрдз рдПрдорд╡реАрдпреВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ рддреЛ рдЗрд╕рд╕реЗ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рдкреНрд░рд╢реНрди: рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдирд┐рдпрдВрддреНрд░рдг Windows.UI.* рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рдЕрдм рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИ рдФрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рджреЗрдЦреЗрдЧрд╛: рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рд░реЗрдВрдбрд░рд░реНрд╕ рдореЗрдВ рд╕рднреА рд╕реБрдзрд╛рд░ рд╣реИрдВ WinUI рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ Microsoft.UI.* рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░рдг рдПрдХ рдмрдбрд╝реА рдЧрд▓рддреА рд╣реИ, рдпрд╣ Xamarin.Forms рдХрд╛ рднрдпрд╛рдирдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ рд╕реБрдВрджрд░ рд▓реЗрдЖрдЙрдЯ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдПрдХ рд░реЗрдВрдбрд░ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рд╡реЗ рдХреЗ рдмрд┐рдирд╛ wpf рдФрд░ рд╕реНрдкрдВрджрди рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдУрдкрдирдЬреАрдПрд▓ / рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ / рдореЗрдЯрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдЗрдВрдЬрди, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА, рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рдореБрджреНрджрд╛ рдпрд╣рд╛рдВ рдирдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░/рдкреНрд░реЙрдкрд░реНрдЯреА рдореИрдкрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╡рд╣ рдирд╣реАрдВ рдЬрд┐рд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╡реЗ рдореИрдк рдХрд░рддреЗ рд╣реИрдВред рдмрд╕ рдлрд┐рд░ рд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рджреЗрд╢реА рдХреЗ рд▓рд┐рдП рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдХрднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдХрднреА рднреА рдПрдХ рддреИрдпрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рджреЗрд╢реА рдмрдирд╛рдо рдЧреИрд░-рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдФрд░ рдорд┐рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрджрд┐ рдЖрдк рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рд╕реНрдХреАрдЖ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░рдд рд╕рд╣рд┐рдд рд╕рдорд╛рди рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред https://github.com/Clancey/Comet/tree/dev/src/Comet.Skia/Handlersред

рдЗрд╕ рд░реЗрдВрдбрд░рд░ рдЪреАрдЬрд╝ рдкрд░ рдореЗрд░рд╛ 2┬в (рдЬреЛ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЯреАрдмреАрдПрдЪ):

рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдирд┐рдпрдВрддреНрд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП UIButton рд▓рдкреЗрдЯрдирд╛) _and_ рд▓реБрдХрд▓реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ (рдПрдХ рд▓рд╛ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл) рджреЛрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ: рдХреНрдпрд╛ рдорд╛рдЙ рдмрдЯрди рд╡рд░реНрдЧ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЗ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдВрдбрд░рд░ рдХреЛрдб рд╣рдЯрд╛ рджреЗрдВред рдлрд┐рд░, рдмрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрди-рдмреЙрдХреНрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ ButtonRenderer рд╣реИред ButtonRenderer рд╡рд╣ рд╣реИ рдЬреЛ Cocoa/UIKit/UWP/etc рд╕реЗ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ UI рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде, рдФрд░ рдРрдк рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдмрдЯрди рд╡рд░реНрдЧ рдмрд╕ рдЗрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдХрд╕реНрдЯрдо-рдбреНрд░рд╛ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдмрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ ButtonRenderer рдХреЗ рдмрдЬрд╛рдп рдбреНрд░рд╛рдЗрдВрдЧ рдХреНрд▓рд╛рд╕реЗрд╕ (рдЬреЛ рдХреБрдЫ рднреА рджрд┐рдЦрдиреЗ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо wpf рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЖрдЬ рдорд╛рдЙ рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ), рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ Xamarin рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рд╕рдордп рдирд╣реАрдВ рд▓рд┐рдпрд╛ред рдореИрдВ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдХреЛ рдЬрд┐рддрдирд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдмрддрд╛рдУ рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ!

рдореИрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдРрдк рдореЙрдбрд▓ (рдПрдорд╡реАрд╡реАрдПрдо, рдПрдорд╡реАрдпреВ, ...) рдХреЗ рд▓рд┐рдП рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░реЗрдЦ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рдРрдк рдореЙрдбрд▓ рдореЗрдВ рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкреНрд░рддрд┐ рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдПрдл рдЬреИрд╕реЗ рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛, рдХреИрдирд╡рд╛рд╕ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЖрджрд┐)ред
рд░реЗрдВрдбрд░рд░ рдХреЛ рдРрдк рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд╛ рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╕рд╣реА рдЕрдкрдбреЗрдЯ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХреЗред
рдкреНрд░рддреНрдпреЗрдХ рдРрдк рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ IButton рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд░реЗрдВрдбрд░рд░ рдХреЗ рдореИрдк рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ред

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреИрдмреБрд▓рд╕ рдЬреИрд╕реЗ рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрдпреБрдХреНрдд рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреА рдЬрдирд╢рдХреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА (рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдмрдЧ рдХреЗ рд╕рд╛рде)ред

рдПрдХ рдЕрдиреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ: рдирд┐рдпрдВрддреНрд░рдг рдЗрдВрдЯрд░рдлреЗрд╕ ( IButton ) рдХреЛ рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реЗрдВрдбрд░рд░реНрд╕ рдорд╛рди рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдРрдк рдореЙрдбрд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдЧрд╛ (BindableProperty, BindingObject, рдЖрджрд┐)ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреИрдмреБрд▓рд╕ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд┐рдЪрд╛рд░ рд╣реЛрдВрдЧреЗред рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛ рдпрд╣ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЛ IButton рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрд░рд╣, Fabulous рд╕реАрдзреЗ IButton рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рд╢рдмреНрджрдХреЛрд╢ рдкрд░ рдкрд╛рдардХ-рджреГрд╢реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред

// This is the type used by our users, sort of a Builder that return a new instance each time
// and append the set value to an internal list 
public struct Button
{
     public Button Text(string value) => (...);

     internal ReadOnlyDictionary<string, obj> Build() { ... }
}

// This will be an implementation of IButton, hidden from our users
internal class FabulousButton : IButton
{
    private ReadOnlyDictionary<string, obj> _properties;
    FabulousButton(ReadOnlyDictionary<string, obj> properties)
    {
        _properties = properties;
    }

    void Update(ReadOnlyDictionary<string, obj> properties)
    {
        var previousProperties = _properties;
        _properties = properties;

        // Diffing of the 2 dictionaries to determine what changed
        // and which mapped functions inside the renderer should be called
        (...)
    }

    public string Text => _properties["Text"];
}

@TimLariviere рдЖрдкрдиреЗ

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрд░реЗрдВрдбрд░рд░реНрд╕ рдХреА рдмрд╛рдд рд╣реИ рддреЛ рд╡рд╣рд╛рдВ рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИред

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

рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ

рдпрд╣ рдмрдЯрди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ
https://github.com/dotnet/maui/blob/slim-renderer-samples/Maui.Core/Views/IText.cs

рд╡рд╣ рд╕рдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рдкрд░ рд╣реИ (рдЬрд╣рд╛рдБ рддрдХ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ) рд░реЗрдВрдбрд░рд░ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ IButton рдХрд╛ рдкреБрди: рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рдм рдХреЗ BindableObject рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣рдо рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░рд░ рдХреА рдЕрдкрдбреЗрдЯрдкреНрд░реЙрдкрд░реНрдЯреА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

https://github.com/dotnet/maui/blob/slim-renderer-samples/System.Maui.Core/VisualElement.cs#L1132

рдХреБрдЫ рдмрд┐рдВрджреБ (рдЬрд▓реНрдж рд╣реА?) @Clancey рдХреЗ рдкрд╛рд╕ рдзреВрдордХреЗрддреБ рдХрд╛ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛

рдореИрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛
https://github.com/dotnet/maui/blob/slim-renderer-samples

рдЖрдк рд╢рд╛рдпрдж рдЙрд╕рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ Fabulous.Core рд╣реЗрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@PureWeen рдУрд╣ рдХреВрд▓ред рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдирдореВрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

@PureWeen @Clancey рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдорд╛рдЙ рдЯреАрдо рдЗрд╕ рд╕рдм рдкрд░ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдирдП рд╕реНрд▓рд┐рдо

@PureWeen
рдпрд╣ рдпреВрдЖрд░рдПрд▓
https://github.com/dotnet/maui/blob/slim-renderer-samples

404 рджреЗрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдирд┐рдЬреА рд╣реИ?

@ рд░реИрдВрдб-рд░реИрдВрдбрдо

https://github.com/dotnet/maui/tree/slim-renderer-samples

@velocitysystems

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдорд╛рдЙ рдЯреАрдо рдЗрд╕ рд╕рдм рдкрд░ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдирдП рд╕реНрд▓рд┐рдо рд░реЗрдВрдбрд░рд░реНрд╕ рд╡рд┐рд░рд╛рд╕рдд рдкрд░ рд░рдЪрдирд╛ рдХрд╛ рдкрдХреНрд╖ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ XF рдореЗрдВ рдЗрд╕рдиреЗ рдХреБрдЫ рд░реЗрдВрдбрд░рд░ рдкрджрд╛рдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдЙрдирдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╣реБрдд рд╣реА рдкрддрд▓рд╛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рдЕрдЪреНрдЫреЗ ol' System.Object

https://github.com/dotnet/maui/blob/slim-renderer-samples/Maui.Core/Renderers/View/AbstractViewRenderer.Android.cs

рдФрд░ рдХреЛрдИ рджреЗрд╢реА рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред

рд╡рд╣рд╛рдВ рд╕реЗ рдкреВрд░реА рдЪреАрдЬ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдбрд┐рдХреНрд╢рдирд░реА рдХреНрдпрд╛ рд╣реИ

https://github.com/dotnet/maui/blob/slim-renderer-samples/Maui.Core/Renderers/View/AbstractViewRenderer.cs#L31

рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдореИрдкрд░ рдХреЗ рд╕рд╛рде рдореИрдкрд░ рдХреЛ рд╕рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрдВрдХ рдЖрджрд┐ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп 95 рдкреНрд░рддрд┐рд╢рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдореИрдкрд░ рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ Func рдЬреЛрдбрд╝рдХрд░ рдпрд╛ рдХреЗрд╡рд▓ рдореВрд▓ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реАрдзреЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдХреЗ рдХрд╡рд░ рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдмрд╣реБ-рд▓рдХреНрд╖рд┐рдд рд╣реЛрдВрдЧреЗ

@PureWeen рдЖрдкрдХреЗ рдирдореВрдиреЗ рдореЗрдВ рдЙрди рд╕реНрд▓рд┐рдо

рдореЗрд░реЗ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ рдЬреИрд╕реЗ:

  • рдХреНрдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕реНрдерд╛рди рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? XF рдореЗрдВ, рд╡реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ BindableProperty рдлрд╝реАрд▓реНрдб рдмрдирд╛рддреЗ рд╕рдордп рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпреЗ рдРрдк рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
  • рдХреНрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕ рднреА (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ) рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрди рдЬрд╛рдПрдЧрд╛? рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ UI рд╡реНрдпрд╡рд╣рд╛рд░ (рд╕рдВрд╕рд╛рдзрди, рдореЗрдиреВ, рдореБрдЦреНрдп рдкреГрд╖реНрда) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
  • рдХреНрдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рдорд╛рдк/рд╡реНрдпрд╡рд╕реНрдерд╛/рдЖрджрд┐ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрдк рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рд╕реНрдерд╛рди рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? XF рдореЗрдВ, рд╡реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ BindableProperty рдлрд╝реАрд▓реНрдб рдмрдирд╛рддреЗ рд╕рдордп рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпреЗ рдРрдк рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╢реНрди рд╣реИред @ рдХреНрд▓реЗрдиреНрд╕реА ? рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдЪрд░рдг рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рдореИрдкрд░реНрд╕ рдХреЛ рдЧреБрдгреЛрдВ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди) рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

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

рд╣рд╛рдВ! рд╣рдо рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕ (рдореВрд▓ рдФрд░ xplat) рдХреЛ рдПрдХ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд▓реЗрдХрд░ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рдкрддрд╛ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ

рдХреНрдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рдорд╛рдк/рд╡реНрдпрд╡рд╕реНрдерд╛/рдЖрджрд┐ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрдк рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣реА рдпреЛрдЬрдирд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рд╣рдорд╛рд░реЗ рд╕рднреА рд▓реЗрдЖрдЙрдЯ рдХреЛрдб рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдмрд╛рдЗрдВрдбреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ/рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд░ рдирд┐рд░реНрднрд░ рди рд╣реЛ .. рдЗрд╕ рддрд░рд╣ рдмреНрд▓реЗрдЬрд╝рд░/рдзреВрдордХреЗрддреБ/рдЕрдиреНрдп рдХреЗрд╡рд▓ рд╕реНрдЯреИрдХрд▓рд╛рдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╡рд╣реА рд╣реЛрдЧрд╛ред

рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд▓реЗрдХрд░ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рдкрддрд╛ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ

рдореБрдЭреЗ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдлреИрдмреБрд▓рд╕ рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рдореБрдЦреНрдп рдореЗрдиреВ (рдЬреИрд╕реЗ macOS рдХреЗ рд▓рд┐рдП) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рдХрд╣рд╛рдиреА рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд░реНрдЧ рдХреЛ рд╕реНрд╡рдпрдВ рдЙрдк-рд╡рд░реНрдЧ рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВ, рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ/рдореЗрдиреВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡реЗ рдХреНрд▓рд╛рд╕рд┐рдХ Xamarin.Forms рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред

рддреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рднреА UI-рд╕рдВрдмрдВрдзрд┐рдд рдЧреБрдг рднреА рджреГрд╢реНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдВрдЧреЗ, рдЗрд╕ рддрд░рд╣ рд╣рдо рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг-рднрд┐рдиреНрди рддрд░реНрдХ рдХреЛ рднреА рдЙрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдРрд╕рд╛ рдХреБрдЫ

public interface IAppRoot
{
    IEnumerable<object> Resources { get; }
    IMenu MainMenu { get; }
    IPage MainPage { get; }
}

public class Application
{
    /// Bootstrapping and other logic of MAUI

   public IAppRoot Root { get; set; } // Replaces MainPage, which is typed for pages only
}

@PureWeen рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓: TextChanged , Toggled , рдЖрджрд┐ рдЬреИрд╕реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛? рдирд┐рдпрдВрддреНрд░рдг рдпрд╛ рд░реЗрдВрдбрд░рд░реНрд╕?

рдПрдХ рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдРрдк рдореЙрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧреА, рд╡рд╣ рд╣реИ рд░рд╛рдЬреНрдп-рдмрджрд▓рддреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЬрдм рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЬ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реИ рдпрд╛ рдЬрдм рд╣рдо MyEntry.Text = "New value"; рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкрд░ TextChanged рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдирд┐рд╣рд┐рдд рд╣реИ рдЬреЛ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рд╣реИред

рд╕рд╛рде рд╣реА рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░реА рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдиреЗ рдлреИрдмреБрд▓рд╕ рдХреЛ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ред
рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдпрд╣ рдерд╛ рдХрд┐ рдкрд╣рд▓реЗ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдкреБрдирдГ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ ...

рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдкреНрд░рд╢реНрдиред рдЬрдм MAUI рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдирд╛рдореЛрдВ рд╕реЗ рдХреНрдпреЛрдВ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдХреЗ рдЪрд┐рддреНрд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдЙ рд╣реИред MVVM .ButtonRenderer.Android? @PureWeen @Clancey

XF рдореЗрдВ рдХрдореНрдкреНрд░реЗрд╕реНрдб рд▓реЗрдЖрдЙрдЯреНрд╕ (рдЬреЛ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ) рдирд╛рдо рдХреА рдХреЛрдИ рдЪреАрдЬрд╝ рд╣реЛрддреА рд╣реИред
рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ MAUI рдореЗрдВ рдРрд╕реА рдЪреАрдЬрд╝ рд╣реИ (рдмрд┐рдирд╛ рдмрдЧреНрд╕ рдХреЗ!)?

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпреВрдЖрдИ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓рдЯрд░/рд╕реНрдХрд┐рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдЧ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдирд╕реЗ рд╕рд╣рдордд рд╣реВрдВред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдПрдордПрдпреВрдЖрдИ рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо/рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдФрд░ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рджреЗрд╢реА рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪреАрдЬреЛрдВ рдХреЗ рд░рд╛рдЬрдиреАрддрд┐рдХ рдкрдХреНрд╖ рдкрд░ рдврд╛рдВрдЪреЗ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИред
рдФрд░ рд╣рд╛рдБ, рдореИрдВ Apple рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрд┐рд╕реА рд╕рдордп рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ 'рдЧреИрд░-рджрд╕реНрддрд╛рд╡реЗрдЬ/рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╢реЛрд╖рдг' рдпрд╛ 'Apple UI рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рдирд╛' рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпреВрдЖрдИ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓рдЯрд░/рд╕реНрдХрд┐рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдЧ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдирд╕реЗ рд╕рд╣рдордд рд╣реВрдВред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдПрдордПрдпреВрдЖрдИ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо/рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рджреЗрд╢реА рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪреАрдЬреЛрдВ рдХреЗ рд░рд╛рдЬрдиреАрддрд┐рдХ рдкрдХреНрд╖ рдкрд░ рдврд╛рдВрдЪреЗ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИред
рдФрд░ рд╣рд╛рдБ, рдореИрдВ Apple рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрд┐рд╕реА рд╕рдордп рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ 'рдЧреИрд░-рджрд╕реНрддрд╛рд╡реЗрдЬ/рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╢реЛрд╖рдг' рдпрд╛ 'Apple UI рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рдирд╛' рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ MAUI рд╡реЗрдм (рдЬреИрд╕реЗ рдлрд╝реНрд▓рд┐рдЯрд░) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ WebView рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрдкреНрдкрд▓ рдХрднреА рднреА рд╡реЗрдмрд╡реНрдпреВ-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреА рд╣рд┐рдореНрдордд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗрд╡рд▓ рд╡реЗрдмрд╡реНрдпреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпреВрдЖрдИ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓рдЯрд░/рд╕реНрдХрд┐рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдЧ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдирд╕реЗ рд╕рд╣рдордд рд╣реВрдВред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдПрдордПрдпреВрдЖрдИ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо/рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рджреЗрд╢реА рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪреАрдЬреЛрдВ рдХреЗ рд░рд╛рдЬрдиреАрддрд┐рдХ рдкрдХреНрд╖ рдкрд░ рдврд╛рдВрдЪреЗ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИред
рдФрд░ рд╣рд╛рдБ, рдореИрдВ Apple рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрд┐рд╕реА рд╕рдордп рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ 'рдЧреИрд░-рджрд╕реНрддрд╛рд╡реЗрдЬ/рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╢реЛрд╖рдг' рдпрд╛ 'Apple UI рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рдирд╛' рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрджрд┐ MAUI рд╡реЗрдм (рдЬреИрд╕реЗ рдлрд╝реНрд▓рд┐рдЯрд░) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ WebView рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрдкреНрдкрд▓ рдХрднреА рднреА рд╡реЗрдмрд╡реНрдпреВ-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреА рд╣рд┐рдореНрдордд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗрд╡рд▓ рд╡реЗрдмрд╡реНрдпреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╣реИ - https://developer.apple.com/app-store/review/guidelines/#minimum -functionality

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

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

@ рдЬреИрдХреА0100
рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХрд╕реНрдЯрдо UI рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЬреИрд╕реЗ рдХрд┐ Xamarin рдлрд╝реЙрд░реНрдо рдореЗрдВ рдкреБрд░рд╛рдирд╛ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЬреИрд╕реЗ рдпрд╣ рдирд░рдХ рдХреЗ рд╕рд╛рддрд╡реЗрдВ рд╕рд░реНрдХрд▓ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рдерд╛ред

рд░реЗрдВрдбрд░рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, IView рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдПрдХ рдореВрд▓ рджреГрд╢реНрдп рд╣реИ (рдПрдХ IView рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдореВрд▓ рджреГрд╢реНрдп рд╣реИ)ред рдпрд╛рдиреА рд░рдЪрдирд╛ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рд░рд╛рд╕рдд? рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╢реВрдиреНрдп "рдлреЙрд░реНрдо рдУрд╡рд░рд╣реЗрдб" рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рддреЗрдЬрд╝, рд╕рдмрд╕реЗ рджреБрдмрд▓рд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рд╢реБрджреНрдз рджреЗрд╢реА рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдлрд┐рд░ рдЖрдк рдЖрдИрдУрдПрд╕ рднреВрдорд┐ рдореЗрдВ рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдЕрдкрдирд╛ рд╡рд┐рдЪрд╛рд░ UIView рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реЗрдВ, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдореВрд▓ рдмрдЪреНрдЪрд╛ рдЬреЛрдбрд╝реЗрдВ (рдЬреЛ рднреА рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЖрдИрд╡реАрд╡ рдПрдХ рдпреВрдЖрдИрд╡реАрд╡ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдпрджрд┐ рдЖрдк 'рдореВрд▓ рдПрдореНрдмреЗрдбрд┐рдВрдЧ' рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ IView рдПрдХ UIView рд╣реИ, рдЖрдк рдЕрдкрдиреЗ рдореВрд▓ рджреГрд╢реНрдп рдореЗрдВ рдЕрдкрдирд╛ рдПрдХ IViews рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИрдВред рдпрд╣ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рджреЗрд╢реА <-> рдорд╛рдЙ рдЗрдВрдЯрд░рдСрдкреЗрдмрд┐рд▓рд┐рдЯреА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдиреНрдпреВрдирддрдо рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЗ рд╕рд╛рдеред

рдореИрдВ рдЦреБрдж рдЗрд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХрд╛ рдорди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╢рд╛рдпрдж рдПрдХ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд/рд╢рд╛рдо рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ ...

image

рдпрджрд┐ MAUI рд╡реЗрдм (рдЬреИрд╕реЗ рдлрд╝реНрд▓рд┐рдЯрд░) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ WebView рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

iOS рдкрд░ WebView рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: OpenGL рдпрд╛ Metal рдореЗрдВ рд╕реАрдзреЗ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╛ рдпрд╛ рддреЛ OpenGL рдпрд╛ рдиреАрдЪреЗ рдзрд╛рддреБ рдХреЗ рд╕рд╛рде Skia рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕реНрдерд╛рдиреАрдп рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪреАрдЬреЛрдВ рдХреЗ рд░рд╛рдЬрдиреАрддрд┐рдХ рдкрдХреНрд╖ рдкрд░ рдврд╛рдВрдЪреЗ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИред [рд╕реЗрдм]

рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, Apple рдиреЗ рдЕрдкрдиреА рд▓рд┐рдЦрд┐рдд рдиреАрддрд┐ рд╕реЗ рджреЗрд╢реА UI рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдореБрдЭреЗ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдиреАрддрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд▓рдЯ рджреЗрдВрдЧреЗред

рднрд▓реЗ рд╣реА, рджреЗрд╢реА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _able_ рд╣реЛрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред

@legistek

рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд▓реЛрдЧ рд╕реНрдХреА рдХреЗ рдкреНрд░рддрд┐ рдЬреБрдиреВрдиреА рдХреНрдпреЛрдВ рд╣реИрдВ? рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдпреБрдХреНрддрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реЛрдЧрд╛ ...

рдЬрдмрдХрд┐ рдореИрдВ "рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА" рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд╡рд╣рд╛рдВ рдПрдХ _lot_ рд╡рд┐рд╡рд░рдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдпреВрдЖрдИ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдпрджрд┐ рдЖрдк рд╕реАрдзреЗ рдУрдкрдирдЬреАрдПрд▓/рдзрд╛рддреБ/рд╡рд▓реНрдХрди/рдЬреЛ рднреА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░рддрд┐рдкрд╛рджрди рдЗрдВрдЬрди рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЛрдЧ рд╕реНрдХреА рдХреЗ рдкреНрд░рддрд┐ рдЬреБрдиреВрдиреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдРрдк рдХреА рдпреВрдЖрдИ рдЪрд┐рдВрддрд╛рдУрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдЗрдВрдЬрди рдХреЗ рдмреАрдЪ рдПрдХ рдкреНрд░рднрд╛рд╡реА _рдордзреНрдп рдкрд░рдд_ рд╣реИ: рд╕реНрдХреАрдпрд╛ _a рд▓реЙрдЯ_ рдХреЛ рд╕рдВрднрд╛рд▓рддреА рд╣реИ рдЬрд┐рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирдВрдЧреЗ рдзрд╛рддреБ рд╣реИред рдЗрд╕ рдХрд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ _only_ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдПрдХ рдЕрддреНрдпрдВрдд рдореВрд▓реНрдпрд╡рд╛рди рдФрд░ рдкрд░рд┐рдкрдХреНрд╡ рд▓рдХреНрд╖реНрдп рд╣реИ, рдЬреЛ рдУрдкрдирдЬреАрдПрд▓ рд╕реЗ рд╡рд▓реНрдХрди рддрдХ рдЬрд╛рдиреЗ, рдХрд╣рдиреЗ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреА рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЬрд╝рд╛рдорд░реАрди рдлреЙрд░реНрдореНрд╕ рдХреЗ рджреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдЬреЗрдЯ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдмреЛрдЭрд┐рд▓ рд╣реЛрдЧрд╛ - рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рдЬреЗрдЯ рдФрд░ рджреЗрд╢реА рд╡рд┐рдЬреЗрдЯред

рд╕реНрдХреАрдпрд╛ рдЙрд╕ рджрд┐рди рднреА рдЬрд▓реНрджрдмрд╛рдЬреА рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрдм .рдиреЗрдЯ рдорд╛рдЙ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА

рд╣рд╛рдп рд╕рдм рд▓реЛрдЧ, рдЗрд╕реЗ рдордд рднреВрд▓рдирд╛:
https://github.com/dotnet/maui/discussions/103

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдорд╛рдЙ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реВрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдордВрдЪ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкрдХреНрд╖ рдкрд░ рдХрд┐рдП рдЧрдП рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд╕рд╛рде рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реНрдЯрд╛рдЗрд▓ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣рд╛рд╡ рд░рд╣рд╛ рд╣реИред рдЪрд╛рд╣реЗ рдЙрд╕рдХрд╛ рд╕реНрдХреАрдпрд╛ рд╣реЛ рдпрд╛ рджреЗрд╢реА рдХреИрдирд╡рд╛рд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреИрдЪреЗрдб рдЗрдВрдЯрд░рдСрдк, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛! рдПрдХреНрд╕рдПрдл рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд░реЗрдВрдбрд░рд░ рдореЙрдбрд▓ рдиреЗ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдХрдо рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдпреВрдЖрдИ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдпрд╛ рд╣реИред

рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдореВрд▓ рдШрдЯрдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рднреА рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХрдВрдкреЛрдЬрд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореВрд▓ рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрдореА рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛рдиреА рдпрджрд┐ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рдорд╛рдЙ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪреЗ рдЧрдП рд╣реИрдВ рд╕реНрдХреА, рдпрд╣ рдХрдВрдЯреЗрдирд░ рдХреЛ рдПрдХ SkView рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд▓реЗрдмрд▓ рдмрд╛рд▓ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдбреНрд░реЙ рдСрдкрд░реЗрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЬреЛ рд╕реВрдЪреА рддрддреНрд╡реЛрдВ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдореЗрдВ рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЫрд╡рд┐рдпрд╛рдВ + рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдирд┐рдпрдВрддреНрд░рдг рд╣реИрдВред

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

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдПрдХ рд░реЗрдВрдбрд░рд░ рдХреНрдпрд╛ рд╣реИред
рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдХреЗ рджреГрд╢реНрдп рдЕрдВрддрд░ рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЗрдВрдбрд░рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЬрд╝рд╛рдорд░реАрди рдФрд░ MAUI рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдзреВрд░рд╛ Xamarin рдФрд░ MAUI рд╣реИред рдФрд░ рдпрд╣ рдХрднреА рднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рд▓рдХреНрд╖реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЕрдВрддрд░ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕