Настройки пользовательского диалогового окна WPF - PullRequest
0 голосов
/ 10 марта 2019

, поэтому я работаю над программой, которая будет использовать последовательный порт для связи.Впервые я работаю с WPF, однако раньше я занимался проектами в Win Forms, но я подумал, что было бы хорошо изучить WPF.Прямо сейчас я настраиваю последовательный порт, используя выпадающие списки в главном окне.Я собираюсь предоставить свой текущий код и скриншоты в конце этого поста.Дело в том, что я хочу создать настраиваемое диалоговое окно, которое объединяет эти настройки и открывается при нажатии кнопки, чтобы эти настройки не отображались в главном окне.И после закрытия этого диалогового окна настройки будут использоваться в файле .cs главного окна для настройки порта.Я не прошу точный код или решение этого вопроса, мне просто нужна помощь для начала работы с ним.

    public partial class MainWindow : Window
    {
    SerialPort port = new SerialPort();

    public MainWindow()
    {
        InitializeComponent();

        COM_Port_Name.ItemsSource = SerialPort.GetPortNames();
        Parity_Select.ItemsSource = Enum.GetValues(typeof(Parity));
        Stop_Bits_Select.ItemsSource = Enum.GetValues(typeof(StopBits));
        Handshake_Select.ItemsSource = Enum.GetValues(typeof(Handshake));
    }

    private void Start_Read_Click(object sender, RoutedEventArgs e)
    {
        Serial_Port_Set();
        Serial_Port_Read();
    }

    private void Refresh_Click(object sender, RoutedEventArgs e)
    {
        COM_Port_Name.ItemsSource = SerialPort.GetPortNames();
    }

    private void Stop_Read_Click(object sender, RoutedEventArgs e)
    {
        Serial_Port_Stop();
    }

    private void Close_App_Click(object sender, RoutedEventArgs e)
    {
        Serial_Port_Stop();
        port.Dispose();
        System.Windows.Application.Current.Shutdown();
    }

    public void Serial_Port_Set()
    {
        port.PortName = COM_Port_Name.Text;
        port.BaudRate = Convert.ToInt32(Baud_Rate_Select.Text);
        port.Parity = (Parity)Enum.Parse(typeof(Parity), Parity_Select.Text);
        port.DataBits = Convert.ToInt32(Data_Bits_Select.Text);
        port.StopBits = (StopBits)Enum.Parse(typeof(StopBits), Stop_Bits_Select.Text);
        port.Handshake = (Handshake)Enum.Parse(typeof(Handshake), Handshake_Select.Text);
        port.ReadTimeout = Convert.ToInt32(Read_Timeout_Set.Text);
        port.WriteTimeout = Convert.ToInt32(Write_Timeout_Set.Text);
    }

enter image description here

...