我有一个简单的按钮,在按钮的contentcontrol标签内有两个文本块元素,如下所示。问题是没有调用textblock控件的mouseup事件。相反,每次单击文本块控件时,都会调用onclick even1t按钮。
<Button>
<ContentControl>
<Textblock x:name="txt1" Text="Tes1-1" MouseLeftButtonUp="txt1_mouseleftbuttonup"/>
<Textblock x:name="txt2" Text="Tes1-1" MouseLeftButtonUp="txt2_mouseleftbuttonup"/>
<ContentControl>
</button>
如果我将contentcontrol标记放在<Button>
标记之外,那么事件就会起作用。
答案 0 :(得分:0)
这不是你可以为TextBlocks启动MouseLeftButtonUp事件处理程序的方法,但它是你在TextBlocks上处理MouseLeftButtonUp事件的方式:
<Button Mouse.PreviewMouseUp="Button_MouseLeftButtonUp">
<ContentControl>
<TextBlock Text="TestText" x:Name="txt1"/>
</ContentControl>
</Button>
private void Button_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var btn = sender as Button; if (btn == null) return;
if (btn.InputHitTest(e.GetPosition(btn)) is TextBlock)
{
;//TextBlock MouseUp handler
}
}
答案 1 :(得分:-1)
处理MouseLeftButton 向下事件:
<Button Click="Button_Click_1">
<ContentControl>
<TextBlock x:Name="txt11" Text="test" MouseLeftButtonDown="txt1_mouseleftButtonup"/>
</ContentControl>
</Button>