Как связать цвета с помощью пользовательской градиентной кисти - PullRequest
0 голосов
/ 14 декабря 2018

У меня проблемы с использованием пользовательской кисти Graident с именем AngleGradientBrush, чтобы разрешить рисование Shape.

Чтобы создать этот новый Gradient Brush Я использовал это: http://wpfkorea.tistory.com/169

Это прекрасно работает, так как я использую только код из AngleGradientBrush.cs, чтобы позволить мне иметь круговой цвет для любой фигуры.

Проблема в том, что для LinearGradientBrush или RadiantGradientBrush это работает, если я делаю это:

            <Ellipse Name="FourDirectionsEllipse"
                       StrokeThickness="{Binding StrokeThiknessVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                       Width="{Binding ElementWidthVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                       Height="{Binding ElementHeightVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                       Opacity="{Binding OpacityFourDirectionsEllipseVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                       IsEnabled="{Binding EnableFourDirectionsEllipseVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                       HorizontalAlignment="Center" >
                <Ellipse.Stroke>
                    <LinearGradientBrush>
                        <GradientStop Color="{Binding DownColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.125"/>
                        <GradientStop Color="{Binding RightColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.125"/>
                        <GradientStop Color="{Binding RightColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.375"/>
                        <GradientStop Color="{Binding UpColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.375"/>
                        <GradientStop Color="{Binding UpColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.628"/>
                        <GradientStop Color="{Binding LeftColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.628"/>
                        <GradientStop Color="{Binding LeftColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.878"/>
                        <GradientStop Color="{Binding DownColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.878"/>
                    </LinearGradientBrush>
                </Ellipse.Stroke>
            </Ellipse>

Цвет связан без каких-либо проблем, поэтому я могу изменить цвета каждого GradientStop.

Но если я использую <angleGradientBrushSample:AngleGradientBrush GradientDetail="1"> <GradientStop Color=...>...</angleGradientBrushSample:AngleGradientBrush> вместо этого привязка не работает.

Я надеюсь, что это не конкретный вопрос только для моего кода, но я подумал, что это может помочь, когда некоторые люди пытаются определить новый GradientBrush.

Проблема связана с кодом с сайта, о котором я говорил?Нужно ли что-то добавить, чтобы оно обрабатывало новые цвета?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...