• Avalonia. Возможно ли маршрутизированное событие для класса в шаблонном типе?

    @AAGR
    Занимаюсь программированиям
    Определите интерфейс, который содержит событие маршрутизации, и имплементировать этот интерфейс в каждом классе, где необходимо использовать это событие. Затем в каждом классе можно определить статический член, который будет хранить все подписки на событие в этом классе. Каждый раз, когда событие происходит, класс будет обновлять свои подписки и оповещать всех заинтересованных слушателей.

    public interface IBase
    {
        event EventHandler<RoutedEventArgs> MyRoutedEvent;
    }
    
    public class Base<T> : ReactiveUserControl<T>, IBase where T : class
    {
        public static event EventHandler<RoutedEventArgs> MyRoutedEvent;
    
        event EventHandler<RoutedEventArgs> IBase.MyRoutedEvent
        {
            add { MyRoutedEvent += value; }
            remove { MyRoutedEvent -= value; }
        }
    
        protected static void OnMyRoutedEvent(object sender, RoutedEventArgs e)
        {
            MyRoutedEvent?.Invoke(sender, e);
        }
    }


    Concrete:

    public class Concrete : Base<ConcreteViewModel>, IBase
    {
        public static event EventHandler<RoutedEventArgs> MyRoutedEvent;
    
        event EventHandler<RoutedEventArgs> IBase.MyRoutedEvent
        {
            add { MyRoutedEvent += value; }
            remove { MyRoutedEvent -= value; }
        }
    
        protected override void OnInitialized()
        {
            base.OnInitialized();
            MyRoutedEvent += OnMyRoutedEvent;
        }
    
        protected override void OnDispose()
        {
            MyRoutedEvent -= OnMyRoutedEvent;
            base.OnDispose();
        }
    }
    Ответ написан
    Комментировать
  • Какие книги посоветуете БД, C#?

    @AAGR
    Занимаюсь программированиям
    1. "Язык программирования C# 8.0 и платформа .NET Core 3.0" автора Эндрю Троелсен
    2. "Базы данных для начинающих. Просто о сложном" автора Андрея Кушниренко
    3. "C# 7.0 в примерах и задачах" автора Алексея Балана
    4. "Программирование баз данных Microsoft SQL Server 2012" автора Марка Стоуна
    5. "ADO.NET и создание приложений баз данных в Visual Studio .NET" автора Владимира Березина
    Ответ написан
    Комментировать
  • Ошибка Stack overflow при работе с файловой системой, как исправить?

    @AAGR
    Занимаюсь программированиям
    Возможно дело в том что метод 'Deserialize()' повторно вызывает конструктор 'UserSettings()' попробуйте:
    public UserSettings()
        {
            DirectoryInfo dir = new DirectoryInfo(path_directory);
    
            if (!dir.Exists)
            {
                dir.Create();
            }
    
            if (!File.Exists(path_fileSettings))
            {
                Serializer();
            }
            else
            {
                Deserialize();
            }
        }
    Ответ написан
    Комментировать
  • Как принимать постбек в зеннопостер?

    @AAGR
    Занимаюсь программированиям
    Воспользуйся парсинг сайтов
    Ответ написан
    Комментировать
  • Как разблокировать пк?

    @AAGR Автор вопроса
    Занимаюсь программированиям
    Как вариант можно имитировать нажатия клавиши на клавиатуре, sendkeys не работает наверное потому что не видит куда надо нажимать. Я так считаю
    Ответ написан
    Комментировать
  • Как открыть дополнительную форму?

    @AAGR Автор вопроса
    Занимаюсь программированиям
    Все я понял, нужно сделать перегрузку конструктора и передать через него необходимые координат.

    Код в форме которую надо вызвать(Form2)
    public Form2()
    {
            InitializeComponent();
            StartPosition = FormStartPosition.Manual;
    }
    public Form2(Point newLocation) : this()
    {
            Location = newLocation;
    }


    Код в форме с помощью которой вызывает первую при клике мышкой(Form1)
    private void button1_Click(object sender, EventArgs e)
    {
            new Form2(Cursor.Position).Show();
    }
    Ответ написан
    Комментировать
  • Как узнать местоположения курсора?

    @AAGR Автор вопроса
    Занимаюсь программированиям
    Короче, нашел обходной способ

    int CursorToFormX = this.PointToClient(Cursor.Position).X;
    int CursorToFormY = this.PointToClient(Cursor.Position).Y;
    
    int SizeTreeView = treeView1.Size.Width + 18;
    int PositionPasteX = (SizeTreeView - CursorToFormX) - (SizeTreeView - CursorToFormX) - (SizeTreeView - CursorToFormX);
    
    int SizeCaptionAndMenuStrip = int.Parse(SystemInformation.CaptionHeight.ToString()) + 6;
    int PositionPasteY = (SizeCaptionAndMenuStrip - CursorToFormY) - (SizeCaptionAndMenuStrip - CursorToFormY) - (SizeCaptionAndMenuStrip - CursorToFormY);
    Ответ написан
    Комментировать
  • Как сделать конструктор на c#?

    @AAGR Автор вопроса
    Занимаюсь программированиям
    Короче сделал кратко: Что би перетаскивать надо взяться 10 (можно редактировать) пикселей от нижней и правой границе. Что би менять размер нужно взяться за край. силка
    Ответ написан
    Комментировать