Вопрос по wpf, events – WPF Rectangle не имеет события Click

21

Похоже, что WPFПрямоугольник форма не имеет определенного события Click. Что я должен использовать вместо этого?

У него есть MouseUp, но поведение не совсем такое.

Ваш Ответ

4   ответа
0

Постучал, который работает отлично. В разработке универсальных приложений для Windows 8.1 появляются новые события. Постучал, DoubleTaped, RightTapped и удержание.

4

это предложение просто вставить интересующий объект в ContentControl.

Вот их пример (с рамкой, которая также не поддерживает щелчок / двойной щелчок).

<ContentControl MouseDoubleClick="OnDoubleClick">
    <Border Margin="10" BorderBrush="Black" BorderThickness="2">
        <Grid Margin="4">
            <Rectangle Fill="Red" />
            <TextBlock Text="Hello" FontSize="15" />
        </Grid>
    </Border>
</ContentControl>
Это работало как чемпион. Просто и по существу. +1
20

вы можете использоватьInputBindings имущество:

<Rectangle Fill="Blue" Stroke="Black">
    <Rectangle.InputBindings>
        <MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/>
    </Rectangle.InputBindings>
</Rectangle>

Это приведет к выполнению FooCommand при нажатии на прямоугольник. Удобно, если вы используете MVVM!

Это .NET 4, или он также работает в .NET 3.5? M. Dudley
Он доступен в .NET 3.5:msdn.microsoft.com/en-us/library/…
Этот ответ не работает в .NET 3.5, только в .NET 4 и более поздних версиях. В .NET 3.5 свойство Command не зарегистрировано как свойство зависимости, поэтому его нельзя установить на привязку. Смотрите мой вопрос наstackoverflow.com/questions/1427638/… M. Dudley
32

MouseDown а такжеMouseUp, возможно, вы могли бы просто поставитьRectangle вButton и обрабатыватьButton& APOS; sClick событие?

<Button>
    <Button.Template>
        <ControlTemplate>
            <Rectangle .../>
        </ControlTemplate>
    </Button.Template>
</Button>

Это действительно зависит от поведения, за которым вы следите. Пожалуйста, уточните, если это необходимо.

Это, наверное, то, что я хочу. M. Dudley

Похожие вопросы