У меня возникла проблема с элементом управления WinFormsHost в моем приложении WPF.WIndows Forms Host Backgorund buggy
я не знаю, чтобы описать это 100% по себе, так что я сделал видео, чтобы помочь мне:
Всякий раз, когда я пытаюсь установить значение Brush
которого Color.Value.A
свойства равно 255 (FF в шестнадцатеричном виде) до свойства Background моего WinFormsHost, цвет сразу возвращается.
В других словах вы можете знать Colors.White
Вернул бы Color
со значением #FFFFFFFF
. Фон вернется к предыдущему цвету, пытаясь установить это.
Однако если установить А (значение Альфа Color
«s до 254 ака #FEFFFFFF
Цвет устанавливается без возврата к его предыдущий цвет.
Я написал это, чтобы попробовать и работать вокруг этого странного поведения (работает прямо сейчас)
private void ColorPicker_SelectionChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e)
{
Brush brush;
if (e.NewValue == null) return;
if (e.NewValue.Value.A == 255)
{
var color = Color.FromArgb((byte) (e.NewValue.Value.A - 1), e.NewValue.Value.R, e.NewValue.Value.G,
e.NewValue.Value.B);
brush = new SolidColorBrush(color);
((ColorPicker) sender).SelectedColor = color;
}
else
{
brush = new SolidColorBrush((Color)e.NewValue);
}
WindowHostControl.Background = brush;
}
Я просмотрел ваше видео, прочитал ваше описание и не знаю, в чем проблема, которую вы пытаетесь исправить. Возможно, если вы уточните, включите код и опишите, в чем проблема? – user3690202
Обновлено, спасибо :) Надеюсь, это объяснит немного лучше. – ImaBrokeDude
Что происходит, когда вы устанавливаете фон элемента управления внутри WindowsHostControl вместо фона самого WindowsHostControl? У меня никогда не возникало проблем с настройкой фона элементов управления WinForms, используемых в WPF. Как насчет жесткого кодирования цвета, чтобы проверить, является ли это ошибкой в вашей логике со списком? – user3690202