我有一个.xaml文件,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:lineElement="clr-namespace:...LineElement"
xmlns:mvvmWpfBehavior="clr-namespace:Gno.Libraries.WpfMvvm.Behaviors.Focus;assembly=Gno.Libraries.WpfMvvm">
<DataTemplate DataType="{x:Type lineElement:LineElementViewModel}">
<Grid>
<Line Stroke="DarkBlue" X1="{Binding PX1}" Y1="{Binding PY1}" X2="{Binding PX2}" Y2="{Binding PY2}"
StrokeThickness="3" Visibility="Visible" Stretch="Fill">
</Line>
</Grid>
</DataTemplate>
</ResourceDictionary>
如果我将LineElementViewModel.cs中的坐标设置为:PX1 = 0,PY1 = 0,PX2 = 150,PY2 = 0,我得到视图:
可以看到适当的焦点选择。
如果我将坐标更改为:PX1 = 0,PY1 = 0,PX2 = 0,PY2 = 150,我得到视图:
表现完全符合我的要求。你可以看到焦点被恰当地选择了。
问题来自于我调整大小或拉伸(我能够使用Stretch="Fill"
)这样的行:
当我像以前一样更改X1,Y1等坐标使其垂直时,我选择Line元素时的焦点不会更新。