рдкреИрдВрддрд╛рд▓рд┐рд╡ рдЕрд╡рд▓реЛрдирд┐рдпрд╛

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


рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:


рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдиреАрдореЗрд╢рди рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ:


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


рд╕рдорд╛рдзрд╛рди рдореЗрдВ 2 рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ:

рд╕реАрдПрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ, рдмрд╕ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рд╣рдореЗрдВ ContentControl рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛, рдФрд░ рд╣рдордиреЗ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рд░рд╛ рдЬрд╛рджреВ рдХреЗрд╡рд▓ xaml рд╕реЗ рд╣реА рд╣реЛрдЧрд╛ред
    public class LoadRound:ContentControl
    {
        
  }


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ:
<Styles xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:cc="clr-namespace:Load.Controls">
    <Style Selector="cc|LoadRound">
  </Style>
</Styles>

рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдбрд┐рдЬрд╛рдЗрди рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ред
рдЕрдм рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рднрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рд░рдЦреЗ рдЧрдП 8 рдХрд╛рд▓реЗ рдШреЗрд░реЗ рдЪрд╛рд╣рд┐рдПред
<Style Selector="cc|LoadRound">
        <Setter Property="Template">
            <ControlTemplate>
                <Grid ClipToBounds="True">

                    <ContentPresenter Name="Content"
                                      Content="{TemplateBinding Content}"
                                      ContentTemplate="{TemplateBinding ContentTemplate}" />
                    <Canvas Width="160" Height="160" 
                            IsHitTestVisible="False">
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_8" Canvas.Left="60" Canvas.Top="20"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_7" Canvas.Left="100" Canvas.Top="40"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_6" Canvas.Left="120" Canvas.Top="80"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_5" Canvas.Left="100" Canvas.Top="120"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_4" Canvas.Left="60" Canvas.Top="140"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_3" Canvas.Left="20" Canvas.Top="120"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40" Classes="ellipse pos_el_2" Canvas.Left="0" Canvas.Top="80"
                                 Fill="Black" />
                        <Ellipse Width="40" Height="40"  Classes="ellipse pos_el_1" Canvas.Left="20" Canvas.Top="40"
                                 Fill="Black" />
                    </Canvas>
                </Grid>
            </ControlTemplate>
        </Setter>
    </Style>

рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдерд┐рд░ рддрд╕реНрд╡реАрд░ рдорд┐рд▓рддреА рд╣реИред


рдЕрдЧрд▓рд╛, рдЖрдВрджреЛрд▓рди рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдордВрдбрд▓рд┐рдпреЛрдВ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рд╢реИрд▓реА рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
<Style Selector="Ellipse.pos_el_1">
        <Style.Animations>
            <Animation Duration="0:0:0.5" IterationCount="INFINITE">
                <KeyFrame Cue="0%">
                    <Setter Property="Opacity" Value="0.17" />
                </KeyFrame>
                <KeyFrame Cue="14%">
                    <Setter Property="Opacity" Value="0.34" />
                </KeyFrame>
                <KeyFrame Cue="28%">
                    <Setter Property="Opacity" Value="0.50" />
                </KeyFrame>
                <KeyFrame Cue="42%">
                    <Setter Property="Opacity" Value="0.67" />
                </KeyFrame>
                <KeyFrame Cue="56%">
                    <Setter Property="Opacity" Value="0.84" />
                </KeyFrame>
                <KeyFrame Cue="70%">
                    <Setter Property="Opacity" Value="1" />
                </KeyFrame>
                <KeyFrame Cue="84%">
                    <Setter Property="Opacity" Value="0" />
                </KeyFrame>
                <KeyFrame Cue="100%">
                    <Setter Property="Opacity" Value="0.07" />
                </KeyFrame>
            </Animation>
        </Style.Animations>
    </Style>


рд╢реИрд▓реА рдХреЗ рдЕрдВрджрд░, рд╣рдордиреЗ рдХреЗрд╡рд▓ рдПрдирд┐рдореЗрд╢рди рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд░реНрдХрд▓ рдПрдиреАрдореЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд% рдореЗрдВ рдХрд┐рддрдирд╛ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд╡рдзрд┐ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ, рд╣рдордиреЗ рдкреВрд░реЗ рдПрдиреАрдореЗрд╢рди рдХреА рдЕрд╡рдзрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА, рдФрд░ IterationCount рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рд╕рдВрдЦреНрдпрд╛ред


рдФрд░ рд╣рдореЗрдВ рдРрд╕реА рдЭрдкрдХреА рдЖрддреА рд╣реИред рдФрд░ рдЗрд╕ рдПрдиреАрдореЗрд╢рди (рд╕рднреА рд╕рдордп рдХреЗ рд╕рд╛рде) рдХреЛ рд╕рднреА рд╕рд░реНрдХрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ "рдЖрдВрджреЛрд▓рди" рдХрд╛ рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╣рдорд╛рд░реЗ рдирдП рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЗрд╕рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
xmlns:controls="clr-namespace:Load.Controls"

рдкреЗрдЬ рдкрд░ рд╣реА рдирд┐рдпрдВрддреНрд░рдг рдЬреЛрдбрд╝реЗрдВ
<controls:LoadRound />

рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рднреАрддрд░ рдПрдХ рд╢реИрд▓реА рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рджреГрд╢реНрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИред
    <Window.Styles>
        <StyleInclude Source="avares://Load/Controls/LoadRound.xaml" />
    </Window.Styles>


рд╕реА # рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдпрд╣рд╛рдВ рдПрд╡рд▓реЛрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП ред

All Articles