WPF 中是否可以访问代码隐藏文件中的画布面板(在 xaml 文件中创建)的 ScaleTransform 参数?
用例示例:
我想在缩放的 Canvas 中放置一个项目列表,如下所示:
<ItemsControl MouseMove="Control_MouseMove">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas>
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform>
<ScaleTransform.ScaleX />
</ScaleTransform>
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我还想通过弹出窗口在鼠标悬停时显示我的项目在画布内的当前位置。我目前正在尝试这种方式:
public void Control_MouseMove(object sender, MouseEventArgs e) {
if (!this.Popup.IsOpen)
this.Popup.IsOpen = true;
var mousePosition = e.GetPosition(this.SwLane);
this.Popup.HorizontalOffset = mousePosition.X + 10;
this.Popup.VerticalOffset = mousePosition.Y - 20;
this.PopupContent.Text = System.Convert.ToString(mousePosition.X);
}
我得到的是 Popup 内的画布 X 坐标(这对我来说很有意义)。但是,我想显示画布的比例转换“坐标”。
有没有办法访问代码后面的 ScaleTransform 参数,以便我可以可视化转换后的项目位置?还是我应该以不同的方式来做?谢谢。