, поэтому я работаю над программой, которая будет использовать последовательный порт для связи.Впервые я работаю с 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);
}