Хобрук: Ваш путь к мастерству в программировании

Как изменить содержимое ContentControl на кнопке переключения IsChecked Proprrty

В настоящее время я работаю над изменением содержимого (в виде изображения) контейнера на кнопке переключения IsChecked Proprty. Поэтому я подумал, что ContentControl будет хорошим выбором для контейнера. Но я не могу понять, как добиться результата.

Я создал ресурс изображений в windows.resource

<Image Source="Resources/Desert.jpg" x:Key="image1"/>
    <Image Source="Resources/Koala.jpg" x:Key="image2"/>
    <Image Source="Resources/Lighthouse.jpg" x:Key="image3"/>
    <Image Source="Resources/Chrysanthemum.jpg" x:Key="image4"/>

Поэтому я подумал использовать вышеуказанный ресурс для изменения свойства содержимого ContentControl, изменив свойство ControlTemplate с помощью триггеров, где SourceName как (ToggleButton) и TargetName как (ContentControl), но это не работает

Итак, как я могу изменить содержимое ContentControl в свойстве toggleButton Ischeck.

Edit

<ContentControl BorderBrush="Black" Name="cc">
        <ControlTemplate>
            <ControlTemplate.Triggers>
                <Trigger SourceName="ToggleButton" Property="IsChecked" Value="True">
                    <Setter TargetName="cc" Property="Content" Value="{StaticResource image1}"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
        </ContentControl>

Я только что попробовал, так как я понятия не имею, как это сделать.....

Любая помощь приветствуется


  • Покажите код, который не работает, а не код, который работает. 21.01.2014
  • @AntonTykhyy Отредактировал сообщение. Но друг у меня нет идеи, чтобы продолжить. 21.01.2014
  • Хорошо, теперь расскажите нам, что происходит, когда вы запускаете это (он вообще компилируется?), и что вы ожидаете. «Не работает» не информативно. 21.01.2014
  • @AbhinavSharma, прочитайте страницу http://stackoverflow.com/help/how-to-ask от Справочный центр, чтобы узнать, как лучше задавать вопросы и, следовательно, получать лучшие ответы. 21.01.2014
  • Используйте DataTrigger в своем ContentControl.Style, который проверяет, является ли SomeCheckbox.IsChecked True, и если это так, устанавливает правильное изображение. У меня есть пример здесь, однако он привязывается к DataContext, а не к другому элементу пользовательского интерфейса. Вам понадобится привязка ElementName или RelativeSource вместо обычной привязки к DataContext 21.01.2014
  • @Sheridan Спасибо за ваш ответ ... я обязательно посмотрю на него .. 22.01.2014
  • @Rachel Спасибо за твой ответ .... большой поклонник твоего блога в wpf. 22.01.2014

Ответы:


1

Вы, кажется, излишне усложнили ситуацию. Вы можете просто использовать элемент управления Image, а не ContentControl. Чтобы чередовать два Image, вы можете просто сделать это с DataTrigger:

<Image Source="Resources/Desert.jpg" x:Key="image1"/>
<StackPanel>
    <ToggleButton Name="Button" Content="Change Image" Margin="10" />
    <Image Margin="10,0,10,10">
        <Image.Style>
            <Style>
                <Setter Property="Image.Source" 
Value="/YourAppName;component/Resources/Desert.jpg" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsChecked, ElementName=Button}" 
Value="True">
                        <Setter Property="Image.Source" 
Value="/YourAppName;component/Images/Resources/Koala.jpg" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>
</StackPanel>
21.01.2014
Новые материалы

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

React Hooks: основы деструктуризации массива
Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

Пакеты R, используемые в Tesla
Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

Сокращение и слияние токенов для эффективных моделей VL: обзор
Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..