Я использую WPF. Есть ли способ, чтобы получить такой эффект, как этот:Эффект линии в WPF
Так в основном градиент с несколькими линиями сверху. Числовые линии должны увеличиваться в зависимости от ширины/высоты элемента.
Я использую WPF. Есть ли способ, чтобы получить такой эффект, как этот:Эффект линии в WPF
Так в основном градиент с несколькими линиями сверху. Числовые линии должны увеличиваться в зависимости от ширины/высоты элемента.
Я хотел бы использовать два слоя, первый прямоугольник является фоном, а второй является то, что накладываются друг на друга
<!-- Background gradient -->
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF5B5B5B" Offset="0.008"/>
<GradientStop Color="#FFA6A6A6" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<!-- Lines layer -->
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<VisualBrush
TileMode="Tile"
Viewport="0,0,7,7"
ViewportUnits="Absolute"
Viewbox="0,0,7,7"
ViewboxUnits="Absolute" >
<VisualBrush.Visual>
<Line X1="7" X2="0" Y1="0" Y2="7" Stroke="Gray" />
</VisualBrush.Visual>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
В ответ на @Shlomo
Вы могли бы в конечном итоге изменить кисть, чтобы содержать две строки вместо одного, чтобы избавиться от интервала при увеличении. Решение будет выглядеть примерно так:
<VisualBrush.Visual>
<Grid>
<Line X1="10" X2="0" Y1="0" Y2="10" Stroke="Gray" />
<Line X1="4" X2="-1" Y1="-1" Y2="4" Stroke="Gray" />
</Grid>
</VisualBrush.Visual>
Таким образом, нам не нужно те уродливым приближен номер.
Спасибо вам обоим @ Aleksandar-Toplek и @Shlomo! Это были именно те ответы, которые я искал. – user18247
Вот пример, который должен сработать для вас.
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,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>
</Rectangle.Fill>
</Rectangle>
Я не ищу линейного градиента. Меня больше интересует линия над градиентом. – user18247
Отработка решения Александра. Он фиксирует недостатки, что линии выглядят как линия колбас, если вы увеличиваете их.
<!-- Background gradient -->
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF5B5B5B" Offset="0.008"/>
<GradientStop Color="#FFA6A6A6" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<!-- Lines layer -->
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<VisualBrush
TileMode="Tile"
Viewport="0,0,10,10"
ViewportUnits="Absolute"
Viewbox="0,0,10,10"
ViewboxUnits="Absolute" >
<VisualBrush.Visual>
<Grid>
<Line Fill="#777" X1="0" X2="10" Y1="10" Y2="0" Stroke="Gray" StrokeThickness="1" />
<Line Fill="#777" X1="0" X2="0.35355339059327376220042218105242" Y1="0" Y2="0.35355339059327376220042218105242" Stroke="Gray" />
<Line Fill="#777" X1="9.6464466094067262377995778189476" X2="10" Y1="9.6464466094067262377995778189476" Y2="10" Stroke="Gray" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Rectangle.Fill>
</Rectangle>
Теперь я удалил эти уродливые аппроксимированные числа, проверьте мой ответ ... Как вы добрались до этих чисел в любом случае, грубой силой? : D –
Правые равнобедренные треугольники создаются углом диагональной линии и квадратным окном просмотра. Поскольку толщина штриха равна 1, обе стороны равны .5 каждый, поэтому длина должна быть корневой (.25 + .25)/2 => .35355 ... Другое число составляет 10 минус. – Shlomo
Излишне говорить, что ваш ответ намного более изящный. – Shlomo
Пожалуйста, отметьте ответ, если это то, что вы искали. Благодаря! –