Maui: [рдХрд▓реНрдкрдирд╛] рдЫрд╛рдпрд╛

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

рдЫреИрдпрд╛ рдЫреИрдпрд╛

рдЫрд╛рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рджреГрд╢реНрдп рд╕рдВрдХреЗрдд рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдорд╛рдирд╡ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ UI рддрддреНрд╡ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдФрд░, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рдЬрд╛рдЗрдирд░ рдЕрдкрдиреЗ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдореЗрдВ рдЫрд╛рдпрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддреЗ рд╣реИрдВред

shadows

рдПрдкреАрдЖрдИ

рдбреНрд░реЙрдкрд╢реИрдбреЛ рд╡рд░реНрдЧ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдЫрд╛рдпрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд▓реЗрдЖрдЙрдЯ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЧреБрдг

  • рддреНрд░рд┐рдЬреНрдпрд╛ : рдЧрд╛рдКрд╕реА рдХрд▓рдВрдХ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдЫрд╛рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред
  • рд░рдВрдЧ : рдЫрд╛рдпрд╛ рдХрд╛ рд░рдВрдЧред
  • рдСрдлрд╕реЗрдЯ : рдЗрд╕рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЫрд╛рдпрд╛ рдХрд╛ рдСрдлрд╕реЗрдЯред
  • рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ : рдЫрд╛рдпрд╛ рдХреА рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ред
public class DropShadow : BindableObject
{
    public static readonly BindableProperty RadiusProperty = BindableProperty.Create(
        nameof(Radius), typeof(double), typeof(DropShadow), 10.0d);

    public double Radius
    {
        get => (double)GetValue(RadiusProperty);
        set => SetValue(RadiusProperty, value);
    }

    public static readonly BindableProperty ColorProperty = BindableProperty.Create(
        nameof(Color), typeof(Color), typeof(DropShadow), Color.Black);

    public Color Color
    {
        get => (Color)GetValue(ColorProperty);
        set => SetValue(ColorProperty, value);
    }    

    public static readonly BindableProperty OffsetProperty = BindableProperty.Create(
        nameof(Offset), typeof(Point), typeof(DropShadow), new Point(1, 1));

    public Point Offset
    {
        get => (Point)GetValue(OffsetProperty);
        set => SetValue(OffsetProperty, value);
    }

    public static readonly BindableProperty OpacityProperty = BindableProperty.Create(
        nameof(Opacity), typeof(double), typeof(DropShadow), 1.0d);

    public double Opacity
    {
        get => (double)GetValue(OpacityProperty);
        set => SetValue(OpacityProperty, value);
    }
}

рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ

рдЖрдЗрдП рд╕реА #, рдПрдХреНрд╕рдПрдПрдордПрд▓ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

рд╕реА # рдЙрджрд╛рд╣рд░рдг

var layout = new Grid();

var shadow = new DropShadow ();
shadow.Radius = 12;
shadow.Color = Color.Red;
shadow.Offset = new Point (12, 18);
shadow.Opacity = 0.75d;

layout.Shadow = shadow;

рдПрдХреНрд╕рдПрдПрдордПрд▓ рдЙрджрд╛рд╣рд░рдг

<Grid>
     <Grid.Shadow>
          <DropShadow
               Radius="12"
               Color="Red"
               Offset="12, 18"
               Opacity="0.75" />
     </Grid.Shadow>
</Grid>

рд╕реАрдПрд╕рдПрд╕ рдЙрджрд╛рд╣рд░рдг

box-shadow: 12px 18px 12px 12px red;

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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ Xamarin.Forms рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЫрд╛рдпрд╛ рд╣реИред рдлрд╝реНрд░реЗрдо рдХреА рд╣реИрд╢рд╢реИрдбреЛ рд╕рдВрдкрддреНрддрд┐ рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реЛ рдЬрд╛рдПрдЧреА (рдпрд╣ рдЕрднреА рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЫрд╛рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рдПрдЧреА)ред

рджрд╛рдпрд░рд╛

рдЗрд╕ рдпреБрдХреНрддрд┐ рдореЗрдВ, рд╣рдо рднрд┐рдиреНрди Xamarin.Forms Layouts рдореЗрдВ рдЫрд╛рдпрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдг, рдЬреИрд╕реЗ рдХрд┐ рд▓реЗрдмрд▓, рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ (рд╡реЗ рдмрд╛рдж рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдХрдард┐рдирд╛рдИ: рдордзреНрдпрдо

enhancement proposal-open

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

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╢реИрдбреЛ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

image

рдЬреИрд╕рд╛ рдХрд┐ @jsuarezruiz рдиреЗ рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ: https://github.com/dotnet/maui/issues/11

рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдФрд░ рдареЛрд╕ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирдП "рдмреНрд░рд╢" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд░рдВрдЧ" рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПред

рдирдореВрдирд╛

<Grid>
     <Grid.Shadow>
          <DropShadow
               Radius="12"
               Offset="12, 18"
               Opacity="0.75">
               <DropShadow.Color>
                 <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                <GradientStop Color="Yellow" Offset="0.0" />
                <GradientStop Color="Red" Offset="0.25" />
                <GradientStop Color="Blue" Offset="0.75" />
                <GradientStop Color="LimeGreen" Offset="1.0" />
             </LinearGradientBrush>
               </DropShadow.Color>
          </DropShadow>
     </Grid.Shadow>
</Grid>

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

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

рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ!

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╢реИрдбреЛ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

image

рдЬреИрд╕рд╛ рдХрд┐ @jsuarezruiz рдиреЗ рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ: https://github.com/dotnet/maui/issues/11

рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдФрд░ рдареЛрд╕ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирдП "рдмреНрд░рд╢" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд░рдВрдЧ" рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПред

рдирдореВрдирд╛

<Grid>
     <Grid.Shadow>
          <DropShadow
               Radius="12"
               Offset="12, 18"
               Opacity="0.75">
               <DropShadow.Color>
                 <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                <GradientStop Color="Yellow" Offset="0.0" />
                <GradientStop Color="Red" Offset="0.25" />
                <GradientStop Color="Blue" Offset="0.75" />
                <GradientStop Color="LimeGreen" Offset="1.0" />
             </LinearGradientBrush>
               </DropShadow.Color>
          </DropShadow>
     </Grid.Shadow>
</Grid>

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

рдиреНрдпреВрд░реЛрдореЙрд░реНрдлрд┐рдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рдЫрд╛рдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпреЗ рд╣реИ рдирдП рдлреИрд╢рди рдХреА рдмрд╛рддреЗрдВ...

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