首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将外部接口的属性导入Script#

如何将外部接口的属性导入Script#
EN

Stack Overflow用户
提问于 2010-05-19 02:17:30
回答 3查看 746关注 0票数 2

我在Visual Studio2010中使用Script#来导入HTML5画布元素的应用编程接口。

它适用于FillRect()、MoveTo()、LineTo()等。我声明了下面的接口,然后就可以在C#中针对它进行编码了。然后,Script#很好地将其转换为JavaScript。

代码语言:javascript
复制
public interface ICanvasContext
{
    void FillRect(int x, int y, int width, int height);
    void BeginPath();
    void MoveTo(int x, int y);
    void LineTo(int x, int y);
    void Stroke();
    void FillText(string text, int x, int y);
}

我希望包含接受简单字符串的StrokeStyle属性,但我不知道如何使用接口来实现这一点。以下接口属性会在JavaScript中创建前缀,从而导致失败。生成的JavaScript将与HTML5 Canvas API不匹配。

代码语言:javascript
复制
string StrokeStyle { get; set; }
string Font { get; set; }

上一个属性将创建此JavaScript:

代码语言:javascript
复制
ctx.set_strokeStyle('#FF0');

如何让Script#在没有get_/set_前缀的情况下生成画布上下文的简单赋值属性?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-19 06:05:17

明白了!我使用了一个接口,这在某些情况下是可以的,但是当我需要这个字段时,我必须切换到一个抽象类,这样才不会出现编译错误。

代码语言:javascript
复制
public abstract class Canvas : DOMElement
{
    public abstract CanvasContext GetContext(string dimension);
}

public abstract class CanvasContext
{
    public abstract void FillRect(int x, int y, int width, int height);
    public abstract void BeginPath();
    public abstract void MoveTo(int x, int y);
    public abstract void LineTo(int x, int y);
    public abstract void Stroke();
    public abstract void FillText(string text, int x, int y);

    public string StrokeStyle;
    public string Font;
}

这两个抽象类让我可以使用Script#中的HTML5 Canvas API,如下所示:

代码语言:javascript
复制
public class MySample
{
    public void DoWork(string canvasId)
    {
        Canvas canvas = (Canvas) Document.GetElementById(canvasId);
        CanvasContext ctx = canvas.GetContext("2d");

        // ctx.FillRect(10,20,100,300);

        ctx.BeginPath();
        ctx.MoveTo(10, 10);
        ctx.LineTo(100, 300);
        ctx.MoveTo(20,10);
        ctx.LineTo(559,300);
        ctx.StrokeStyle = "#F00";
        ctx.Stroke();
    }
}
票数 3
EN

Stack Overflow用户

发布于 2010-06-23 16:42:42

一个简单的提示-

script# 0.6现在是公开的,可以从http://projects.nikhilk.net/ScriptSharp上下载,您将在Script.Web.dll中看到开箱即用的Canvas API。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2010-05-19 02:21:42

将该属性更改为一个简单的字段,它应该可以正常工作。

即:

代码语言:javascript
复制
 public string StrokeStyle;
 public string Font;

它推断并生成属性值的get_ / set_

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2859869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档