我有以下示例代码,每次按下按钮时缩放:
XAML:
<Window x:Class="WpfApplication12.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas x:Name="myCanvas">
<Canvas.LayoutTransform>
<ScaleTransform x:Name="myScaleTransform" />
</Canvas.LayoutTransform>
<Button Content="Button"
Name="myButton"
Canvas.Left="50"
Canvas.Top="50"
Click="myButton_Click" />
</Canvas>
</Window>
Run Code Online (Sandbox Code Playgroud)
*的.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void myButton_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine("scale {0}, location: {1}",
myScaleTransform.ScaleX,
myCanvas.PointToScreen(GetMyByttonLocation()));
myScaleTransform.ScaleX =
myScaleTransform.ScaleY =
myScaleTransform.ScaleX + 1;
Console.WriteLine("scale {0}, location: {1}",
myScaleTransform.ScaleX,
myCanvas.PointToScreen(GetMyByttonLocation()));
}
private Point GetMyByttonLocation()
{
return new Point(
Canvas.GetLeft(myButton),
Canvas.GetTop(myButton));
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
scale 1, location: …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Windows窗体应用程序,它要求我调用一个单独的程序来执行任务.该程序是一个控制台应用程序,我需要将标准输出从控制台重定向到我的程序中的TextBox.
从我的应用程序执行程序没有问题,但我不知道如何将输出重定向到我的应用程序.我需要在程序使用事件运行时捕获输出.
在我的应用程序停止并且文本以随机间隔不断变化之前,控制台程序并不意味着停止运行.我试图做的只是从控制台挂钩输出以触发事件处理程序,然后可以使用它来更新TextBox.
我使用C#编写程序代码并使用.NET框架进行开发.原始应用程序不是.NET程序.
编辑:这是我正在尝试做的示例代码.在我的最终应用程序中,我将用代码替换Console.WriteLine来更新TextBox.我试图在我的事件处理程序中设置断点,甚至没有达到.
void Method()
{
var p = new Process();
var path = @"C:\ConsoleApp.exe";
p.StartInfo.FileName = path;
p.StartInfo.UseShellExecute = false;
p.OutputDataReceived += p_OutputDataReceived;
p.Start();
}
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(">>> {0}", e.Data);
}
Run Code Online (Sandbox Code Playgroud)