Реализация события клика на элементе управления WPF внутри WPF - PullRequest
0 голосов
/ 12 марта 2012

Это связано с моим предыдущим вопросом , так как он имеет дело с тем же фрагментом кода;Теперь, когда я завершил изменение фона кнопки, проблема в том, что теперь мне нужно реализовать тот же код, но не для ButtonPressed, а для нажатой кнопки.Я добавил обработчики кликов в коде, но он не работает - фон не меняется.Я пробовал разные подходы, даже с использованием растровых изображений и источников изображений, но это не работает, изменения просто не происходит.Теперь я хочу реализовать изменение фонового изображения, но это нужно сделать в файле XAML, а не в .cs.Снова код:

<Button x:Class="proba4.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="120" d:DesignWidth="300" IsEnabled="True">
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Grid>
                <Image Name="Normal" Source="C:\stuff\off_button.gif"/>
                <Image Name="Pressed" Source="C:\stuff\on_button.gif" Visibility="Hidden"/>

            </Grid>
            <ControlTemplate.Triggers>
                <Trigger Property="IsPressed" Value="True">
                    <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
                    <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
                </Trigger>

            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Button.Template>
</Button>

Обратите внимание, что я уже искал некоторые свойства кнопок для нажатия, но их не было, и все реализации, которые я нашел в Интернете, имеют дело с добавлением метода Button_Click вКод элемента управления .cs, и так как он не работает для меня, мне нужно найти другой способ - надеюсь, что-то вроде полностью реализованного управления щелчками с использованием WPF.Я думаю, что это деликатно, но я буду очень признателен за любую помощь в этом, спасибо.

1 Ответ

1 голос
/ 12 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...