你能不能帮助我,为什么当我点击图像再到文本框时,GotFocus和LostFocusa事件没有被解雇?
我的XAML:
<Window x:Class="imageclick.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<Image Source="Untitled.png" GotFocus="GF" LostFocus="LF" Focusable="True"></Image>
<TextBox ></TextBox>
</StackPanel>
</Grid>
</Window>
我无法理解为什么GotFocus / LostFocus事件从未被解雇
提前致谢
更新:当我设置tabindex时,当标签到达图像事件时触发,但是我无法通过鼠标点击触及
答案 0 :(得分:1)
图片不是 Control
。只有控件才能获得焦点。使用 MouseEnter 和 MouseLeave 事件代替GotFocus和LostFocus,
<StackPanel>
<Image Stretch="Uniform" Source="Untitled.png" Height="410" MouseEnter="Image_MouseEnter" MouseLeave="Image_MouseLeave"></Image>
<TextBox Height="65"></TextBox>
</StackPanel>
答案 1 :(得分:-1)
根据MSDN,当此元素获得逻辑焦点时,会发生UIElement.GotFocus事件。
逻辑焦点与键盘焦点不同,当路径中元素的IsFocused
属性值从false更改为true时,会引发逻辑焦点。
因此,为了通过鼠标点击实现它,需要处理相应的鼠标按钮事件或只需处理MouseDown
并将焦点设置为发件人。
private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
if (sender is Image)
{
(sender as Image).Focus();
}
}
这会将图片的IsFocused
属性设置为true
。