SFML community forums

Help => General => Topic started by: Pulp_Fiction98 on March 05, 2025, 09:34:32 am

Title: windows cants receive any events
Post by: Pulp_Fiction98 on March 05, 2025, 09:34:32 am
System: windows。
I used. net to create a win32 handle in Avalonia, then created a window using SFML and embedded it into the Avalonia form. The rendering and drawing are all normal, but the SFML form cannot receive any events. Is there anything that needs to be set?

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
         
            this.Loaded += MainWindow_Loaded;  
        }

        private void MainWindow_Loaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
        {
         
            var window = new SFML.Graphics.RenderWindow(windowBox.Handle);
            // window.KeyPressed += Window_KeyPressed;
            window.MouseMoved += Window_MouseMoved; ;
             var circle = new SFML.Graphics.CircleShape(100f)
            {
                FillColor = SFML.Graphics.Color.Blue,
                Position=new Vector2f(500,500)
            };
            window.Draw(circle);

            // Finally, display the rendered frame on screen
            window.Display();
       
        }

        private void Window_MouseMoved(object? sender, SFML.Window.MouseMoveEventArgs e)
        {
           //Can In it
        }
    }
    public class NativeEmbeddingControl : NativeControlHost
    {
        public IntPtr Handle { get; private set; }

        protected override IPlatformHandle CreateNativeControlCore(IPlatformHandle parent)
        {

            var handle = base.CreateNativeControlCore(parent);
            Handle = handle.Handle;
            Console.WriteLine($"Handle : {Handle}");
            return handle;
        }
    }
Title: Re: windows cants receive any events
Post by: eXpl0it3r on March 10, 2025, 08:55:09 am
I don't see you calling window.DispatchEvents(); have you just forgotten to do so, or is it not shown in the provided code?

There might still be some trouble if you intend to share events between Avalonia and SFML, that one will consume all the events of the other.