Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF直接在屏幕上显示元素_C#_Wpf_Image_Screen_Preview - Fatal编程技术网

C# WPF直接在屏幕上显示元素

C# WPF直接在屏幕上显示元素,c#,wpf,image,screen,preview,C#,Wpf,Image,Screen,Preview,我知道有一种方法可以在屏幕上直接显示图像中的元素,与应用程序无关。 我相信你可以间接控制系统的图形部分。 有时,如果服务启动并隐藏在后台,您会看到它 我想在屏幕上显示一个图像对象几秒钟作为预览 它是如何工作的?编辑:更新的代码 它是如何工作的 我不认为你想要的是一个现成的、易于使用的预览解决方案,但是你可以尝试找到一个解决方案,如果你失败了,那么你可以询问我们的程序员社区 我的项目: MainWindow.Xaml: <Window x:Class="previewOrSmthn.Main

我知道有一种方法可以在屏幕上直接显示图像中的元素,与应用程序无关。 我相信你可以间接控制系统的图形部分。 有时,如果服务启动并隐藏在后台,您会看到它

我想在屏幕上显示一个图像对象几秒钟作为预览

它是如何工作的?

编辑:更新的代码

它是如何工作的

我不认为你想要的是一个现成的、易于使用的预览解决方案,但是你可以尝试找到一个解决方案,如果你失败了,那么你可以询问我们的程序员社区

我的项目:

MainWindow.Xaml:

<Window x:Class="previewOrSmthn.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:previewOrSmthn"
    mc:Ignorable="d"
    Title="MainWindow" Height="300" Width="400">
<Grid>
    <Image x:Name="imgToPreview" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" MouseDown="imgToPreview_MouseDown"/>
</Grid></Window>
Preview.Xaml.cs:

public partial class MainWindow : Window
{
    string Path = "C:/Users/Public/Pictures/Sample Pictures/Lighthouse.jpg";
    Preview prevwnd = new Preview();
    public MainWindow()
    {
        InitializeComponent();
        imgToPreview.Source = new BitmapImage(new Uri(Path));
        prevwnd = new Preview(Path);         
    }
    protected override void OnClosing(CancelEventArgs e)
    {
        Application.Current.Shutdown();
    }

   private void imgToPreview_MouseDown(object sender, MouseButtonEventArgs e)
    {
        if (e.ClickCount == 2)
        {
            prevwnd.Show();
        }
    }
}
 public partial class Preview : Window
{
    DispatcherTimer ThreeSec = new DispatcherTimer();
    public Preview()
    {
        InitializeComponent();
    }
    public Preview(string imgSource)
    {
        InitializeComponent();
        imgPreview.Source = new BitmapImage(new Uri(imgSource));
        imgPreview.Stretch = Stretch.UniformToFill;
        ThreeSec.Interval = TimeSpan.FromSeconds(3);
        ThreeSec.Tick += ThreeSec_Tick;
        Loaded += Preview_Loaded;

    }

    private void ThreeSec_Tick(object sender, EventArgs e)
    {
        this.Hide();
    }

    private void Preview_Loaded(object sender, RoutedEventArgs e)
    {
        ThreeSec.Start();
    }
}

祝你从这里开始好运!为了让事情变得更好,比如设置所有者等等,我让一切变得简单易懂。如果您有问题,请发表评论。

我认为您对闪屏的概念感到困惑,闪屏肯定是应用程序的一部分。不,我没有。我知道闪屏。我不想在应用程序启动时只启动一次。我希望在每次点击图像时都能看到它,您将直接在屏幕上看到更大尺寸的图像。请改进您想要实现的目标的描述。您以前在哪里看到过这一点?为什么不创建一个窗口(可能是无边框窗口)并在其中显示预览图像?
 public partial class Preview : Window
{
    DispatcherTimer ThreeSec = new DispatcherTimer();
    public Preview()
    {
        InitializeComponent();
    }
    public Preview(string imgSource)
    {
        InitializeComponent();
        imgPreview.Source = new BitmapImage(new Uri(imgSource));
        imgPreview.Stretch = Stretch.UniformToFill;
        ThreeSec.Interval = TimeSpan.FromSeconds(3);
        ThreeSec.Tick += ThreeSec_Tick;
        Loaded += Preview_Loaded;

    }

    private void ThreeSec_Tick(object sender, EventArgs e)
    {
        this.Hide();
    }

    private void Preview_Loaded(object sender, RoutedEventArgs e)
    {
        ThreeSec.Start();
    }
}