从C#应用程序启动MATLAB GUI并与之交互

时间:2017-12-14 08:02:26

标签: c# matlab user-interface matlab-compiler matlab-app-designer

我熟悉C#并定期编写代码,但MATLAB对我来说完全是一个新的应用程序。

所以,我在这里想要实现的是在MATLAB中设计一个像“旋钮”这样的简单GUI,并通过C#应用程序启动它。

这是旋钮的MATLAB脚本:

function a = Modify_Figure_value(val)
fig = uifigure('Name','KnobValue','Position',[100 100 283 275]);

txt = uieditfield(fig,'text',...
'Position', [69 82 100 22]);

kb = uiknob(fig,...
'Position',[89 142 60 60],...
'ValueChangedFcn',@(kb,event) knobTurned(kb,txt),'Tag','knob');

set(fig.Children(1),'Value',val);
a = 1;
end

当我在MATLAB中运行上述脚本时,旋钮显示在一个窗口中。

然后我使用 MATLAB编译器将其打包为名为“ displayKnobValueIndotNet ”的 .NET程序集,以便在C#代码中使用(带有类名称为 Modify_Figure_valueclass )。所以我写了一个WPF应用程序,它包含一个按钮,当点击它时应该启动旋钮:

public partial class Demo_function : UserControl
{
    displayKnobValueIndotNet.Modify_Figure_valueclass obj = 
    new displayKnobValueIndotNet.Modify_Figure_valueclass();


    public Demo_function()
    {
        InitializeComponent();

    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
       MWArray x = obj.Modify_Figure_value((MWNumericArray)25);   
    }
 }

但是GUI没有启动,也没有错误或异常。我哪里错了?

一旦我实现了上述目标,我需要使GUI具有交互性,因为当我更改旋钮中的值时,我会在WPF应用程序中获得这些值。那么,这可行吗?

0 个答案:

没有答案