2016-06-22 11 views
-2

私は現在、Windows 10用のWebブラウザを開発していますし、私はこのエラーを取得:なぜ "Textbox.Paste"はXAMLの+ =または - =の左側にのみ現れるのですか?

"Textbox.Pasteは" のみ+ =の左側に表示されたりすることができます - =

私は現在、URLの内容をテキストボックスに貼り付ける機能を追加しても機能しません。私はこのようにやっていた:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
    } 

    private void SearchBox_Paste(object sender, TextControlPasteEventArgs e) 
    { 
     SearchBox.Paste = true; 
    } 
} 

}

私が間違ってやっている

?私はC#初心者です。これが私の最初のプロジェクトです。親切な答えをありがとう、私は初心者だということに留意してください!乾杯!

+3

'SearchBox.Paste'は、[イベント](https://msdn.microsoft.com/en-IN/library/awbftdfh.aspx)です。あなたはそのコードで何をしようとしていますか? –

+3

'TextBox' _already_に貼り付ける機能があります。あなたは_add_する必要はありません。実際、その能力を完全に無効にするのは難しいです。 –

+0

私は、カット、コピー、ペーストの機能を持つテキストボックスを持っています。私はWebブラウザを開発しています。コードを表示するためにF7を押した場合は、それを設定する必要があります。どのように私はその能力を追加するのですか? –

答えて

1

"Textbox.Pasteは" のみ+ =または左側に現れることができます - =

TextBox.Pasteは(TextBoxがUIElementのタイプを参照している)eventある - エルゴSearchBoxあなたは、このイベントをサブスクライブする必要があり、いくつかの作業を実行するためのハンドラをフックします。このタイプ

の派生イベントが発生します。あなたのハンドラでやることはあなた次第です。

SearchBox.Paste +=を使用して登録し、独自のハンドラを宣言することができます(またはVSがこれを行うことができます)。ただ聞いて、

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     SearchBox.Paste += SearchBox_Paste; // Subscribe to the Paste event 
    } 

    private void SearchBox_Paste(object sender, TextControlPasteEventArgs e) 
    { 
     // The code in here will be fired when the SearchBox.Paste event is raised 

     // Do something in here, when text is pasted to the SearchBox. 
     // You can use the e parameter to see more data about the event 
    } 
} 

ご質問:逆に、あなたは一例としてSearchBox.Paste -=

に退会することができ、あなたのコードは次のようになりたいです!

・ホープこのことができます:)

+0

便利なヒント - あなたがVSでIntellisenseを使用しているとき(あなたがいると仮定します)、オブジェクトのメンバーがイベントであることを定義する稲妻が表示されます:) –

+0

私は現在エミュレータで読み込んでいます働く –

0

Pasteは、SearchBoxのイベントです。ここでは代理人を作成/使用する必要があります。代入演算子を使用することはできません

+0

のように表示されます。どうすればいいですか? –

+0

@AppsWorkshop必要はありません。すでにそこに! –

+0

ああクール!では、テキストボックスに他の機能(検索URL、コピー、貼り付け)を追加するにはどうすればよいですか? –

1

TextBoxのPasteはプロパティではなく、テキストがコントロールにペーストされたときに起動されるコントロールのeventであるため、実行できません。

ペーストイベントは、コンテンツがコントロールの に挿入される前に発生します。このイベントを処理して、 クリップボードの内容を確認し、コンテンツが挿入される前にそのコンテンツに対する操作を実行できます。 アクションを実行する場合、イベントargs のHandledプロパティをtrueに設定します。それ以外の場合は、デフォルトのペーストアクションが実行されます。 を処理済みとしてマークすると、アプリケーションでペースト 操作が処理されたと見なされ、デフォルトのアクションは実行されません。 挿入する挿入ポイントとクリップボードの内容を決定し、内容を挿入するのは です。

したがって、あなただけ(+=)またはunsuscribe(-=)イベントにサブスクライブが、それに値を設定することはできません。

簡単な例:

XAML

<TextBox Header="Address" Paste="AddressTextBox_Paste"/> 

CS

private async void AddressTextBox_Paste(object sender, TextControlPasteEventArgs e) 
{ 
    TextBox addressBox = sender as TextBox; 
    if (addressBox != null) 
    { 
     // Mark the event as handled first. Otherwise, the 
     // default paste action will happen, then the custom paste 
     // action, and the user will see the text box content change. 
     e.Handled = true; 

     // Get content from the clipboard. 
     var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent(); 
     if (dataPackageView.Contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.Text)) 
     { 
      try 
      { 
       var text = await dataPackageView.GetTextAsync(); 

       // Remove line breaks from multi-line text and 
       // replace with comma(,). 
       string singleLineText = text.Replace("\r\n", ", "); 

       // Replace any text currently in the text box. 
       addressBox.Text = singleLineText; 
      } 
      catch (Exception) 
      { 
       // Ignore or handle exception as needed. 
      } 
     } 
    } 
} 
+0

カットとコピーを追加する方法、またURLを検索する機能はありますか?私は既にWebViewを追加しました。 –

+0

デフォルトでは、任意のテキストボックスコントロールで行うことができます。別の質問がある場合は、それをそのまま開いてください。 –

+0

これで十分です。私は後でWebViewのために尋ねます、私は時間で学ぶでしょう:) –

関連する問題