Avatar
asoft
Člen
Avatar
asoft:

WPF+WinForm, VS 2013, c#, Windows 8.1

Ahoj.
Vytvoril som nový projekt v WPF. Funkčnú aplikáciu vytvorenú vo WinForms (asi 10 formulárov, vlastne triedy, reporty, spolupráca s MS SQL...) som importoval do WPF. Po menších úpravach (napr. prihlasovací formulár som prerobil na WPF) všetko funguje bez problémov. Grafika WinForm v WPF je "krajšia" a zdá sa mi, že aj rýchlejšia. Vytváram nové WPF formuláre a aj spúšťam ich zatiaľ z menu WinForms. Takto fungujú aj MDI-WPF formuláre (cez UserControl).
Otázka: Viem, že sa nedajú priamo vytvárať MDI WPF formuláre. Možností je viacero. Riešil niekto "MDI" formuláre vo WPF aplikácii ?

Editováno 1.4.2015 7:24
 
Odpovědět 1.4.2015 7:23
Avatar
Odpovídá na asoft
Michal Štěpánek:

Neřešil jsem to přímo jako MDI, ale udělal jsem si "základní" okno jako takovou "lištu" na vrch monitoru (vysokou cca 150), je tam menu a ikonky jako toolbar a z toho se pak otevírají další okna. Není to klasické MDI, protože se mi nikde nepodařilo najít řešení MDI pro WPF ale vyhovuje mi to tak...

Nahoru Odpovědět 1.4.2015 10:57
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
asoft
Člen
Avatar
Odpovídá na Michal Štěpánek
asoft:

Nemohol by si ma trochu postrčiť, ako si to urobil ?

 
Nahoru Odpovědět 1.4.2015 16:58
Avatar
Odpovídá na asoft
Michal Štěpánek:

MainWindow.xaml

<Window x:Class="ItDispecinkWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="IT dispečink" Height="155" VerticalAlignment="Top" WindowStyle="ThreeDBorderWindow" Left="0" Top="0" Icon="ICO/monitor.ico">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="150"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="25"/>
            <RowDefinition Height="13*"/>
            <RowDefinition Height="12*"/>
            <RowDefinition Height="25"/>
        </Grid.RowDefinitions>
        <Menu Grid.Row="0" Margin="0" Grid.ColumnSpan="2">
            <MenuItem Header="Nastavení">
                <MenuItem Header="Pracoviště" Name="menuPrac" Click="menuPrac_Click"/>
                <MenuItem Header="Uživatelé"/>
                <MenuItem Header="Role"/>
                <MenuItem Header="Budovy"/>
                <MenuItem Header="Tonery"/>
                <MenuItem Header="Číselník stavů">
                    <MenuItem Header="Požadavky"/>
                    <MenuItem Header="Objednávky"/>
                </MenuItem>
            </MenuItem>
            <MenuItem Header="Požadavky">
                <MenuItem Header="Výpis požadavků"/>
                <MenuItem Header="Nový požadavek"/>
            </MenuItem>
            <MenuItem Header="Tonery">
                <MenuItem Header="Výpis objednávek"/>
                <MenuItem Header="Nová objednávka"/>
            </MenuItem>
            <MenuItem Header="Konec" Name="Konec" Click="Konec_Click" />
        </Menu>
        <Border Grid.Column="1" Grid.Row="2" Style="{StaticResource Rounded}">
            <Label Name="labelVerze" Content="Verze" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Border>
        <StackPanel Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Orientation="Horizontal" Style="{StaticResource Footer}">
            <Label Content="Uživatel : "/>
            <Label Name="labelUser" Content="username" BorderBrush="Black" BorderThickness="0" VerticalAlignment="Center" Background="WhiteSmoke"/>
        </StackPanel>
        <StackPanel Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Orientation="Horizontal">
            <Button Content="Tlačítko1" Padding="5"/>
            <Button Content="Tlačítko2" Padding="5"/>
            <Button Content="Tlačítko3" Padding="5"/>
            <Button Content="Tlačítko4" Padding="5" Click="Button_Click"/>
            <Button Content="Konec" Padding="5" Click="Konec_Click"/>
        </StackPanel>
    </Grid>
</Window>

MainWindow.xaml.cs

public MainWindow()
        {
            InitializeComponent();
            this.Height = 155;
            this.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
            this.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            this.VerticalAlignment = System.Windows.VerticalAlignment.Top;
            System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
            labelVerze.Content = "Verze " + assembly.GetName().Version;
            //labelVerze.Content = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

            //uživatel
            //i s doménou
            string username1 = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
            //login bez domény
            string username = Environment.UserName;
            //MessageBox.Show(username1);
            //labelUser.Content = username1;
            WindowLogin wlog = new WindowLogin(username);
            wlog.ShowDialog();
        }
Editováno 1.4.2015 17:42
Nahoru Odpovědět 1.4.2015 17:39
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na asoft
Michal Štěpánek:

Jsem teprve na začátku, takže většina odkazů je zatím nefunkčních, ale zobrazuje se mi to pěkně nahoře na monitoru...

Nahoru Odpovědět 1.4.2015 17:45
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
asoft
Člen
Avatar
Odpovídá na Michal Štěpánek
asoft:

Hľadal som ešte na Internete. Našiel som aj rôzne iné riešenia. Zatiaľ vďaka za spoluprácu.

 
Nahoru Odpovědět 5.4.2015 7:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.