Nikos Zisis Ответов: 0

Как конвертировать Французский тихоокеанский франк форма для winform


Я пытаюсь понять некоторые вещи, используя примеры. Я пытаюсь создать приложение для Windows для league of legends, в котором я могу щелкнуть свое имя призывателя и получить свою ранговую статистику, поэтому я использовал примеры для подражания, но сейчас я немного застрял.

Проблема в том, что я застрял на том, как заставить его появиться в форме. Я все еще учусь, так что будьте добры, пожалуйста.

Я использовал этот пример: [url]https://github.com/Abel13/LoLGoal/tree/get_profile_data/LoLGoal[/url]


Я застрял на той части, чтобы сделать эту работу в Windows Forms:

<Window x:Class="LoLGoal.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LoLGoal"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        mc:Ignorable="d" Height="600" Width="400" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" WindowStyle="None" Background="#FF410A66">
    <Grid>
        <StackPanel Margin="50">
            <Image Source="/Assets/logo2.png" Width="96" Height="96"/>
            <Border Background="White" Margin="10 20" CornerRadius="5">
                <StackPanel Margin="25">
                    <ComboBox Margin="15" Style="{StaticResource MaterialDesignFloatingHintComboBox}" materialDesign:HintAssist.Hint="Region" Text="{Binding Region}">
                        <ComboBoxItem Content="RU"/>
                        <ComboBoxItem Content="KR"/>
                        <ComboBoxItem Content="BR1"/>
                        <ComboBoxItem Content="OC1"/>
                        <ComboBoxItem Content="JP1"/>
                        <ComboBoxItem Content="NA1"/>
                        <ComboBoxItem Content="EUN1"/>
                        <ComboBoxItem Content="EUW1"/>
                        <ComboBoxItem Content="TR1"/>
                        <ComboBoxItem Content="LA1"/>
                        <ComboBoxItem Content="LA2"/>
                    </ComboBox>
                    <TextBox Text="{Binding SummonerName}" Margin="15" Style="{StaticResource MaterialDesignFloatingHintTextBox}" materialDesign:HintAssist.Hint="Summoner"/>
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                        <Button Margin="15 50" Content="CANCEL"/>
                        <Button x:Name="ButtonSignUp" Margin="15 50" Content="SEARCH" Click="ButtonSignUp_Click"/>
                    </StackPanel>
                </StackPanel>
            </Border>
        </StackPanel>
    </Grid>
</Window>


using LoLGoal.Controller;
using LoLGoal.View;
using LoLGoal.View.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace LoLGoal
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        ControllerMain controller;
        ViewModelMain viewModel;
        public MainWindow()
        {
            controller = new ControllerMain();
            viewModel = new ViewModelMain();
            InitializeComponent();

            this.DataContext = viewModel;
        }

        private void ButtonSignUp_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(viewModel.Region))
                return;
            if (string.IsNullOrEmpty(viewModel.SummonerName))
                return;

            if(controller.GetSummoner(viewModel.SummonerName))
            {
                WindowProfile profile = new WindowProfile();
                profile.Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("Not Found");
            }
        }
    }
}


using LoLGoal.Controller;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace LoLGoal.View
{
    /// <summary>
    /// Interaction logic for WindowProfile.xaml
    /// </summary>
    public partial class WindowProfile : Window
    {
        ControllerProfile controller;

        public WindowProfile()
        {
            controller = new ControllerProfile();
            InitializeComponent();
            this.DataContext = controller.GetContext();
        }

        private void ButtonSearch_Click(object sender, RoutedEventArgs e)
        {
            controller.OpenMain();
            this.Close();
        }
    }
}


Что я уже пробовал:

using AeonApp.Controller;
using AeonApp.View.ViewModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AeonApp.View
{
    public partial class MainWindow : Form
    {
        ControllerMain controller;
        ViewModelMain viewModel;
        public MainWindow()
        {
            controller = new ControllerMain();
            viewModel = new ViewModelMain();
            InitializeComponent();

            this.DataContext = viewModel;
        }

        public ViewModelMain DataContext { get; }

        private void MainWindow_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(viewModel.Region))
                return;
            if (string.IsNullOrEmpty(viewModel.SummonerName))
                return;

            if (controller.GetSummoner(viewModel.SummonerName))
            {
                WindowProfile profile = new WindowProfile();
                profile.Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("Not Found");
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

using AeonApp.Controller;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AeonApp.View
{
    public partial class WindowProfile : Form
    {
        ControllerProfile controller;

        public object DataContext { get; }

        public WindowProfile()
        {
            controller = new ControllerProfile();
            InitializeComponent();
            this.DataContext = controller.GetContext();
        }

        private void WindowProfile_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            controller.OpenMain();
            this.Close();
        }
    }
}

RickZeeland

Я думаю, что вы выбрали плохой пример для начала, это приложение MVC (Model View Controller), которое является излишним и слишком сложным для того, что вы хотите. Просто создайте новое приложение Winforms и взгляните на документацию Microsoft, гораздо проще !

#realJSOP

Кроме того, тот, кто разработал эту форму WPF, абсолютно отстой в разработке форм WPF.

0 Ответов