Итак, я создал дизайн с ползунками, scrollBars и IntegerUpDowns, которые все вместе связаны вместе и имеют одинаковое значение. Я имею для каждого, один для каждого ARGB. У меня в центре находится stackPanel, который должен изменить BackgroundColor при изменении любого из инструментов.
Насколько я думал об этом, мне просто нужно знать одно из значений инструментов, чтобы установить фон с помощью данных, которые они доставляют ... Но как я могу это реализовать?
Пока я закодировал это:
public partial class MainWindow : Window
{
SolidColorBrush brush;
public MainWindow()
{
InitializeComponent();
brush = new SolidColorBrush();
brush.Color = Color.FromArgb(0, 0, 0, 0);
stkColor.Background = brush;
}
private void scbScrollA_Scroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
{
brush.Color.A = scbScrollA.Value(); //doesn't work
}
private void scbScrollR_Scroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
{
}
private void scbScrollG_Scroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
{
}
private void scbScrollB_Scroll(object sender, System.Windows.Controls.Primitives.ScrollEventArgs e)
{
}
}
Как я уже сказал, просто зная данные прокрутки, поскольку я использовал привязки со всеми остальными инструментами, мне удалось установить цвет и обновлять каждый раз, когда любые данные модифицируются.
У меня есть привязки:
<xctk:IntegerUpDown Grid.Column="7" Grid.Row="0" x:Name="iudB" Increment="10" Minimum="0" Maximum="255"
Value="{Binding ElementName=scbScrollB, Path=Value}"
/>
<ScrollBar Grid.Column="1" Grid.Row="6" Grid.RowSpan="2" Width="Auto" Orientation="Horizontal"
Minimum="0" Maximum="255" x:Name="scbScrollB"
Scroll="scbScrollB_Scroll" SmallChange="1"
LargeChange="10" Value="{Binding ElementName=sliderB, Path=Value}"
/>
<Slider
Grid.Column="6" Grid.Row="1" Grid.RowSpan="1"
Orientation="Vertical"
LargeChange="10"
Maximum="255"
SmallChange="1"
TickPlacement="TopLeft"
Minimum="0"
TickFrequency="25"
x:Name="sliderB"
/>
У слайдера нет привязки, потому что, насколько я знаю, они двунаправлены. Никто из них не дает ошибки.