Я хочу позволить пользователю настроить фон моего приложения и выбрать либо цвет, либо изображение С непрозрачным переплетом. Я хочу сделать это в XAML, если это возможно.
Кажется, я очень близок - приведенный ниже код прекрасно работает как с цветом, так и с кистью изображения (если я закомментирую другую), но я не могу найти способ вернуть соответствующую кисть в зависимости от логического значения (UseBackgroundImage).
Если вы посмотрите в приведенном ниже коде, то увидите, что я закомментировал ImageBrush - я пытался вставить VisibilityConverter, связанный с UseBackgroundImage, но объект Brush не использует свойство Visibility.
Я думал о написании конвертера, который вернул бы подходящую кисть, но потом я не мог понять, как применить Непрозрачность только к фону (это относится ко всему содержимому).
<navigation:Frame>
<navigation:Frame.Background>
<SolidColorBrush Color="{Binding Config.BackgroundColorInfo.Value}" Opacity="{Binding Config.BackgroundOpacity}" />
<!--<ImageBrush ImageSource="/TourneyManager;component/image.JPG" Stretch="UniformToFill" Opacity="{Binding Config.BackgroundOpacity}"/>-->
</navigation:Frame.Background>
<navigation:Frame.UriMapper>
Затем я попытался установить привязки в коде так:
SolidColorBrush backgroundBrush = new SolidColorBrush();
Binding b = new Binding("Config.BackgroundColorInfo.Value");
ContentFrame.SetBinding(SolidColorBrush.ColorProperty, b);
Binding b1 = new Binding(".BackgroundOpacity");
ContentFrame.SetBinding(SolidColorBrush.OpacityProperty, b1);
ContentFrame.Background = backgroundBrush;
Но у класса SolidColorBrush нет метода SetBinding, так что радости нет.
Любые предложения о том, как этого добиться, пожалуйста?