如何识别剪贴板内容是从我们的应用程序更改还是从UWP中的另一个应用程序更改?

问题描述 投票:0回答:1

当剪贴板内容从我们的应用程序或其他应用程序更改时,我想执行不同的操作。 每当剪贴板内容发生更改时,都会触发 Clipboard_ContentChanged 事件。如果我从其他应用程序复制一些文本,我想做一些不同的操作。如何做? 如何区分从我们的应用程序更改的剪贴板内容还是从 UWP 中的另一个应用程序更改的剪贴板内容?

我的Xaml:

 <Grid>
    <StackPanel>
        <Button x:Name="CopyToClipBoard" Click="CopyToClipBoard_Click">Copy To ClipBoard</Button>
        <TextBlock x:Name="CopiedFrom"> Clipboard Content Changed From : </TextBlock>
        <TextBlock x:Name="DispalyText" FontWeight="Bold"/>
    </StackPanel>
</Grid>

C# 代码:

    public MainPage()
    {
        this.InitializeComponent();
        Clipboard.ContentChanged += Clipboard_ContentChanged;
    }

    private async void Clipboard_ContentChanged(object sender, object e)
    {
        string str = "";
        if (/*ContentChanged fired due to clipboard content changed from our app*/)
        {
            str = "Text Copied from Our App";
            //Action - 1
        }
        else//ContentChanged fired due to clipboard content changed from outside app
        {
            str = "Text Copied from other app";
            //Action - 2
        }
        DispalyText.Text = str + await Clipboard.GetContent().GetTextAsync();
    }

    private void CopyToClipBoard_Click(object sender, RoutedEventArgs e)
    {
        DataPackage dataPackage = new DataPackage();
        dataPackage.SetText("Hello Clipboard !!");
        Clipboard.SetContent(dataPackage);
    }
c# uwp clipboard uwp-xaml
1个回答
0
投票

如何区分从我们的应用程序更改的剪贴板内容还是从UWP中的另一个应用程序更改的剪贴板内容?

仅从UWP方面来说,没有UWP Api可以实现你想要的。 Clipboard.ContentChanged Event 从系统中跟踪剪贴板中存储的数据的变化,但它不会知道剪辑数据的来源。

© www.soinside.com 2019 - 2024. All rights reserved.