windowsformshost wird nicht angezeigt...



  • hallo

    kann mir einer sagen, warum ich das windowsformshost-control nicht sehe, wenn ich das programm starte?

    <Window x:Class="SFML_Test.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="693.675" Width="833">
        <Canvas HorizontalAlignment="Left" Height="402" Margin="82,243,0,0" VerticalAlignment="Top" Width="674">
            <WindowsFormsHost HorizontalAlignment="Left" Height="248"  Width="473" x:Name="Host" Background="#FFBB3535" Loaded="Host_Loaded_1"/>
        </Canvas>
    </Window>
    

    ich wollte das nur mal schnell ausprobieren, um darin eine sfml-anwendung laufen zu lassen, scheitere dabei aber.

    das habe ich mal schnell hingeschrieben und eigenartigerweise ist die größe des sfmlwindow immer 0,0. verstehe ich nicht. übersehe ich etwas offensichtliches?

    using System.Windows;
    using System.Windows.Media;
    using SFML.Graphics;
    using Color = SFML.Graphics.Color;
    using Window = System.Windows.Window;
    
    namespace SFML_Test
    {
        /// <summary>
        /// Interaktionslogik für MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            private RenderWindow sfmlWindow = null;
    
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void OnRendering(object sender, EventArgs e)
            {
                RenderLoop();
            }
    
            private void RenderLoop()
            {
                sfmlWindow.Clear(Color.Black);
                sfmlWindow.Display();
            }
    
            private void Host_Loaded_1(object sender, RoutedEventArgs e)
            {
                sfmlWindow = new RenderWindow(Host.Handle);
                sfmlWindow.SetView(new View(new FloatRect(0, 0, (float)Host.Width, (float)Host.Height)));
                CompositionTarget.Rendering += OnRendering;
            }
        }
    }
    

    danke
    chrische


Anmelden zum Antworten