2009-06-22 7 views
0

からするRoutedEventを扱う、唯一のTextBlockが追加されます:今WPFは、私は、ユーザーコントロール、デフォルトVSによって生成されたものを持っているユーザーコントロール

<UserControl x:Class="MyNameSpace.Presentation.MyControl" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
x:Name="myControl"> 
    <Grid> 
     <TextBlock x:Name="SomeTextBox" Text="SomeText"></TextBlock> 
    </Grid> 

、私はから動的に親コントロールのWrapPanelには、このコントロールの複数のインスタンスを置きますコードの背後にある。 MyControlインスタンスからの左マウスボタンのクリックをすべて処理したい。私は、次のコードを持っている:私はいくつかのアクションを行うイベントハンドラで

<UserControl x:Class="Minimo.Presentation.FirstParent" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:Presentation="clr-namespace:Minimo.Presentation" 
Height="300" Width="300"> 
<WrapPanel Name="wrapPanelOfMyControls" MyControl.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown"> 
</WrapPanel> 

を、それが動作します。ただし、XAMLファイルを編集するときに次のエラーが表示されます。 'MyControl'型の添付可能なプロパティ 'MouseLeftButtonDown'が見つかりませんでした。これを修正するには?

答えて

2

これはXAMLコンパイラ/デザイナのバグであり、無視しても問題ありません。しかし、より密接に認識しているタイプを指定することで、「修正」することができます。

UIElement.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown" 
+0

ありがとうございました。一方、ラップパネルハンドラは、MyControlインスタンスからではなく、すべての子コントロールのマウスクリックイベントを処理することはできませんか? (明示的にMyControl.MouseLeftButtonDownをこのコントロールからのみ入力するのに対して) –

+0

両方のフォームはまったく同じことをしています - 異なるルーティング方法で同じルーティングイベントを参照しています。また、ルーティングされたイベントなので、子がPreviewMouseLeftButtonDownイベントを処理済みとしてマークしていなければ、パネルは常にそれを処理する機会を得ます。 –

+0

このバグはまだ5年以上経っています! – Ashe

関連する問題