MVP Pattern


<UserControl x:Class="Namespace.Forms.MyForm_View" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation
   MinHeight=
   MinWidth=
   Height=
   Width=
>

Add a "User Control (WPF)"
Add a reference System.Xaml
Remove the ".Forms" entry in the namepsace


copy the height and width from the usercontrol


Forms.FormatTable_Model oModel = new Forms.FormatTable_Model(); 

General.g_oThread = new System.Threading.Thread(delegate ()
{
    System.Windows.Controls.UserControl myusercontrol;
    myusercontrol = new Forms.FormatTable_View();

    Forms.FormatTable_View oView2 = (Forms.FormatTable_View)myusercontrol;
    Forms.FormatTable_Presenter oPresenter = new Forms.FormatTable_Presenter(oModel, oView2);

    General.g_oMyWindow = new System.Windows.Window()
    {
        Title = Constants.MESSAGE_CAPTION + "Format Table",
        Content = myusercontrol,
        ShowInTaskbar = false,
        ResizeMode = System.Windows.ResizeMode.NoResize,
        Height = myusercontrol.Height + 30,
        Width = myusercontrol.Width + 6
    };

    //positioning in the center
    General.g_oInteropHelper = new System.Windows.Interop.WindowInteropHelper(General.g_oMyWindow);
    General.g_oInteropHelper.Owner = (System.IntPtr)General.g_oExcel.Application.Hwnd;

    Constants.Structure_RECT oRect;
    General.GetWindowRect((System.IntPtr)General.g_oExcel.Application.Hwnd, out oRect);
    int nonWPFOwnerLeft = oRect.Left;
    int nonWPFOwnerWidth = oRect.Right - oRect.Left;
    int nonWPFOwnerTop = oRect.Top;
    int nonWPFOwnerHeight = oRect.Bottom - oRect.Top;

    General.g_oMyWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.Manual;
    General.g_oMyWindow.Left = nonWPFOwnerLeft + (nonWPFOwnerWidth - General.g_oMyWindow.Width) / 2;
    General.g_oMyWindow.Top = nonWPFOwnerTop + (nonWPFOwnerHeight - General.g_oMyWindow.Height) / 2;

    General.g_oMyWindow.ShowDialog();

    System.Windows.Threading.Dispatcher.Run();
});

General.g_oThread.SetApartmentState(System.Threading.ApartmentState.STA);
General.g_oThread.Start();



© 2024 Better Solutions Limited. All Rights Reserved. © 2024 Better Solutions Limited TopPrevNext