Wpf 利用锚计算比例尺
在高层,我需要一个Wpf 利用锚计算比例尺,wpf,silverlight,xaml,winrt-xaml,transform,Wpf,Silverlight,Xaml,Winrt Xaml,Transform,在高层,我需要一个usercontrol和contentpresenter如下: <UserControl> <ContentPresenter /> </UserControl> class ResizeConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string la
usercontrol
和contentpresenter
如下:
<UserControl>
<ContentPresenter />
</UserControl>
class ResizeConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, string language)
{ return 1 / System.Convert.ToDouble(value); }
public object ConvertBack(object value, Type targetType,
object parameter, string language)
{ throw new NotImplementedException(); }
}
第二哇,这个比看起来要难。更改renderTransferMorigin
的值时,将使用新值重新渲染任何现有变换。我不是100%知道如何在更改该值之前正确地适应现有转换
第三这就是问题所在。计算指针的当前位置并不太困难。计算如何在指针下定位-这也有点容易。但考虑到基础对象的比例,使其正确填充(甚至倾斜),使其适合新定义的框?没有线索
老实说,我认为计算从原始操纵起点到当前操纵位置的距离可能很重要。为此,我创建了一个很好的方法:
private double Distance(Point point1, Point point2)
{
var x1 = point1.X;
var y1 = point1.Y;
var x2 = point2.X;
var y2 = point2.Y;
return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
}
事实是,我只是部分确定自己走上了正确的道路
这已经在很多现有代码中实现了,但在C#中没有,也没有使用XAML。VisualStudio允许您使用定位调整设计器元素的大小。这不是一个新奇的概念。但是,我的目标仍然是解决这个问题,并发布一个任何开发人员都可以在他们的XAML应用程序(包括我自己的)中使用的工作示例。但是这里有些事情让我很难受
有人能帮我解决这部分问题吗?我不确定,但是这个项目有很多规模和锚用于设计图表,也许你从这里得到了灵感
;-) 您不应该在
UserControl
中尝试这样做。使用装饰器。。。这正是他们的目的。有关更多信息,请参阅MSDN上的页面。
private double Distance(Point point1, Point point2)
{
var x1 = point1.X;
var y1 = point1.Y;
var x2 = point2.X;
var y2 = point2.Y;
return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
}