@Drottarutarnum
Любопытный любитель

Как в avalonia reactiveui отловить позицию курсора мыши?

Моя ViewModel наследуется от ReactiveObject, внутри есть Image и мне надо навесить на него события (клики мышки, клавиатуры, изменения размера)

public class MainWindowViewModel : ReactiveObject {
    private Bitmap? _cover;
    public Bitmap? Cover {
        get => _cover;
        private set => this.RaiseAndSetIfChanged(ref _cover, value);
    }

    public MainWindowViewModel() {
        var img = this.Find<Image>("ImageCanvas");
    }
}


<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="using:MyApp.ViewModels"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="MyApp.Views.MainWindow"
        Title="MyApp">

    <Design.DataContext>
        <vm:MainWindowViewModel/>
    </Design.DataContext>

	<Image Width="100" Height="100"
		   Source="{Binding Cover}"
		   x:Name="ImageCanvas"	   
   />
</Window>


Но получаю ошибку, что MainWindowViewModel не содержит Find.

Каким образом в reactiveui делать привязку к событиям?
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
Но получаю ошибку, что MainWindowViewModel не содержит Find.

Логично, т.к. в MVVM вью-модель ничего не знает о вьюхе

Каким образом в reactiveui делать привязку к событиям?

https://www.reactiveui.net/docs/handbook/events/

внутри есть Image и мне надо навесить на него события (клики мышки, клавиатуры, изменения размера)

Осталось выбрать событие и отслеживать его как в примере по ссылке выше

Возможно вот такое подойдёт. https://github.com/wieslawsoltes/AvaloniaBehaviors/wiki
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы