繁体   English   中英

在WPF MainWindow.xaml中显示IP地址

[英]Display IP address in WPF MainWindow.xaml

我如何在MainWindow.xaml上显示我的IP地址?(我有一个可以显示IP地址的控制台应用程序。如何将控制台应用程序与XAML文件结合在一起?在这里需要一些指导和建议。谢谢!

XAML文件:

<Window x:Class="DisplayIP.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:DisplayIP"
mc:Ignorable="d"
Title="Display IP Address" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
    <RowDefinition/>
    <RowDefinition/>
    <RowDefinition/>
</Grid.RowDefinitions>
</Grid>
</Window>

控制台应用程序的C#代码:

class Program
{
    static void Main(string[] args)
    {
        NetworkInterface[] IF = NetworkInterface.GetAllNetworkInterfaces();

        foreach (NetworkInterface Interface in IF)
        {
            if (Interface.NetworkInterfaceType == NetworkInterfaceType.Loopback) continue;

            Console.WriteLine(" ");
            Console.WriteLine(Interface.Description);


            UnicastIPAddressInformationCollection UnicastIPInfoCol = Interface.GetIPProperties().UnicastAddresses;
            foreach (UnicastIPAddressInformation UnicatIPInfo in UnicastIPInfoCol)
            {
                Console.WriteLine("The IP address is:{0}", UnicatIPInfo.Address);
                Console.WriteLine("The Sub net is:{0}", UnicatIPInfo.IPv4Mask);
            }

        }
        Console.ReadKey();
        }


    }

通常情况下,您希望所有“业务逻辑”都包含在单独的方法(甚至类)中获取IP地址的代码段。 您的控制台应用程序应仅与用户通信,WPF应用程序也应与用户通信。

因此,您将拥有2个“前端”应用程序(WPF和控制台),用户可以使用这些应用程序从后端代码段(方法,类,名称空间或更大的应用程序-库)中获取业务逻辑。

因此,如果我是您,我将创建一个类(例如NetworkInfo),其中一个(或多个)方法将返回有关地址和掩码的信息(将重点放在return这个词上-该方法会将数据返回给调用方,并且不能在控制台上打印它)。 然后,两个应用程序-控制台一个和WPF一个都将从此类中调用此方法,以获取所需的数据并相应地呈现-一个在控制台上使用Console.WriteLine,另一个在Form或Control中使用。 XAML文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM