C#中利用WPF如何实现控件的旋转?以控件的中心旋转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中利用WPF如何实现控件的旋转?以控件的中心旋转相关的知识,希望对你有一定的参考价值。

参考技术A <Border BorderBrush="Black" BorderThickness="1" Width="100" Height="100" Background="Gray" RenderTransformOrigin="0.5,0.5">
<Border.RenderTransform>
<RotateTransform Angle="30"></RotateTransform>
</Border.RenderTransform>
</Border>
关键是RenderTransformOrigin,设成0.5,0.5就可以了本回答被提问者采纳

如何最好地利用新的类型等效功能在 WPF 应用程序中托管 MapPoint 控件

【中文标题】如何最好地利用新的类型等效功能在 WPF 应用程序中托管 MapPoint 控件【英文标题】:How to best utilize the new Type Equivalance features to host the MapPoint Control in a WPF Application 【发布时间】:2011-03-07 01:15:21 【问题描述】:

这与我关于 maintaining interop assembleis 关于新 NoPIA 和类型等效功能的其他问题有关。但现在我有兴趣实际获得一个有效的实现来展示如何将其用于MapPoint Control ActiveX 控件。

我能够遵循有关确保 Visual Studio 中的 Embed Interop Types 选项为我的 MapPoint 参考设置为 True 的建议,并且我能够在其中编译和运行如下代码我的 WPF 应用程序有趣地将 MapPoint.MappointControl 接口视为具有构造函数。

private void Window_Loaded(object sender, RoutedEventArgs e)

    var map = new MapPoint.MappointControl();

    if (map.ActiveMap == null)
    
        map.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica);
    

这段代码似乎可以工作,所以我猜测 COM 调用都在幕后正常进行,但问题是将此 ActiveX 控件集成到我的 Window 的控件继承中。当使用 Windows 窗体中较旧的 ActiveX introp 方法时,我通常会生成 ActiveX 控件主机,它代表我的 ActiveX 控件,但也是一个 Windows 窗体控件,它允许我在 WPF 应用程序中的窗体或 WindowsFormsHost 中托管它.从我目前的研究来看,我可以通过创建一个继承自HwndHost 类的类来实现host the MapPoint Control directly in WPF。然而,这似乎需要大量工作来免费复制 Windows 窗体方法用于在互操作程序集中生成的内容。我的假设是,借助新的类型等效功能,我们不仅可以实例化控件,而且还可以轻松地将这些控件直接集成到 WPF 或 Windows 窗体应用程序中。

我错过了什么吗?如果不是,在 WPF 应用程序中使用 MapPoint 控件的最明智的方法是什么?我希望答案是不再让 Visual Studio 或 TlbImp.exe 实用程序生成我们在 Windows 窗体开发中一直使用的旧互操作程序集。

顺便说一句,我确实找到了一些关于 importing a type library 不同方法的详细信息,但我不太明白它如何适用于我的情况。

【问题讨论】:

【参考方案1】:

我没有将 MapPoint 与 WPF 一起使用,但我认为您应该只手动将 tblimp.exe 用于 MapPoint 2006(及更早版本)。我知道 MapPoint 2009、2010 和大概 MapPoint 2011 发布时,一切都是自动化的。

【讨论】:

自动化是指 Visual Studio 自动执行 TblImp.exe 实用程序的行为?否则,如果有其他不涉及管理生成的互操作 dll 的方法,那么如果您能指出有关该主题的一些资源,那就太好了。

以上是关于C#中利用WPF如何实现控件的旋转?以控件的中心旋转的主要内容,如果未能解决你的问题,请参考以下文章

C# wpf 如何实现自定义控件,布局时,大小发生变化,内部绘制的曲线跟随变化?

WPF 利用附加属性创建FreezableCollection集合和反射实现控件参数以MVVM模式传递

C# WPF 如何实现控件数组?

WPF 画一个3D矩形并旋转

C# wpf 实现任意控件拖动

如何实现WPF窗体旋转