Имам компонент в WPF, този компонент използва граница и използвам свойството Background на границата, за да променя цвета на фона на целия компонент.
Проблемът е, че когато се опитам да редувам два различни цвята с таймер, се хвърлят изключения invalidOperationException. „Извикващата нишка няма достъп до този обект, защото го притежава друга нишка“. При метода на таймера сложих кода за промяна на свойствата на границата в обекта на Dispatcher.
mainBorder.Dispatcher.BeginInvoke((ThreadStart)delegate()
{
mainBorder.BorderBrush = myBrush;
mainBorder.Background = myBrush;
}, null);
но изключенията са хвърлени и не разбирам какво правя погрешно! Например в същото време го правя код
lbHolderServico.Dispatcher.BeginInvoke((ThreadStart)delegate()
{
lbHolderServico.Foreground = new SolidColorBrush(HoldLabelsFontColor);
}, null);
за да промените цвета на шрифта на етикета и всичко работи добре.
Благодаря и поздрави