这里的情景是:
我有一个画布上绘有不同的图表。现在要求是使用C#或VB后面的代码放大画布。此外,我需要将缩放代码放在某个dll中,以便我可以在我的应用程序中重用相同的代码集。
现在我的问题是如何做到这一点......
我试过以下代码请看看..
public MainWindow()
{
InitializeComponent();
canvas.MouseEnter += new MouseEventHandler(canvas_MouseEnter);
canvas.MouseWheel += new MouseWheelEventHandler(canvas_MouseWheel);
}
void canvas_MouseWheel(object sender, MouseWheelEventArgs e)
{
double height = canvas.ActualHeight;
double width = canvas.ActualWidth;
double zoom = e.Delta;
height += 2;
width += 2;
ScaleTransform sc = new ScaleTransform(width, height);
canvas.LayoutTransform = sc;
canvas.UpdateLayout();
}
答案 0 :(得分:3)
我相信你要找的是缩放行为。 Behaviors are objects that encapsulate some form of interactive behavior。我已经看到了几个你应该可以用于项目的“缩放行为”的例子。您应该能够使用或修改以下其中一项......
答案 1 :(得分:0)
尝试实施此示例:
var canvas = new Canvas();
var st = new ScaleTransform();
var textBox = new TextBox {Text = "Test"};
canvas.RenderTransform = st;
canvas.Children.Add(textBox);
canvas.MouseWheel += (sender, e) =>
{
if (e.Delta > 0)
{
st.ScaleX *= 2;
st.ScaleY *= 2;
}
else
{
st.ScaleX /= 2;
st.ScaleY /= 2;
}
};