bugfix> c# > 投稿

私は使用していますWacom STU 530署名タブ Signature SDK v3.20.4では、ドキュメントはSDKの購入時にのみ提供されるようです。そのため、ここではリンクを提供できませんが、いくつかのコードサンプルを見つけることができます。ここに。

私の問題は、署名パッドに表示されているボタンのスタイルを変更することです。方法がわかりません。いくつかのコード:

/* We have this controller which was placed in a windows form
* It's that object that will mainly communicate with the Wacom tab
* It's already initialized, I'm showing this to just to show the type & name */
AxWizCtl WizCtl;
bool success = WizCtl.PadConnect()
if(isSuccess) {
    WizCtl.Font = new Font("Arial", 20, FontStyle.Bold);
    WizCtl.AddObject(ObjectType.ObjectButton, id, x, y, text, null);
    /* 
    * And now what? I can only change the font and dimensions.
    * How could I change things like the border or the color?
    * I don't even know how I can access the newly created object
    */
    WizCtl.Display();
}

そして、私はそれが可能でなければならないことを知っています、このSDKにはこのメソッド CaptureResult res = SigCtl.CtlCapture("who", "why"); があります( SigCtl AxSigCtl であることオブジェクト)は、色付きのボタンで事前定義されたフォームを表示できますが、独自のフォームを作成したいです。

(ここのボタンは青っぽいですが、 AddObject で作成されたボタンは白です)

また、フォントの変更とは異なり、これは機能しません:

AxWizCtl WizCtl;
bool success = WizCtl.PadConnect()
if(isSuccess) {
    WizCtl.Font = new Font("Arial", 20, FontStyle.Bold);
    WizCtl.BorderColor = Color.DarkOrange;
    WizCtl.BackColor = Color.HotPink;
    WizCtl.BorderWidth = 3;
    WizCtl.AddObject(ObjectType.ObjectButton, id, x, y, text, null);  
    WizCtl.Display();
}

回答 1 件
  • Wacomサポートに連絡した後、なんとか答えを得ることができました。

    AxWizCtl WizCtl;
    bool success = WizCtl.PadConnect()
    if(isSuccess) {
        WizCtl.Font = new Font("Arial", 20, FontStyle.Bold);
        WizCtl.SetProperty("ObjectForegroundColor", ConvertColor(Color.DarkOrange)); //Affects text and border colors
        WizCtl.SetProperty("ObjectBackgroundColor", ConvertColor(Color.Pink)); //Affects backgroud color
        WizCtl.AddObject(ObjectType.ObjectButton, id, x, y, text, null);  
        WizCtl.Display();
    }
    //Needed as the color format is a string like this : "0,0.165,1"
    //The order being red, green and blue and the values between 0 and 1
    private string ConvertColor (Color color) {
        string r = ((float)(color.R / 255f)).ToString("0.000");
        string g = ((float)(color.G / 255f)).ToString("0.000");
        string b = ((float)(color.B / 255f)).ToString("0.000");
        return String.Format("{0},{1},{2}", r.Replace(',', '.'), g.Replace(',', '.'), b.Replace(',', '.'));
    }
    
    

    フォントと同じように、それはその後作成されるすべての要素に影響を与えるので、それらをリセットすることを忘れないでください。

あなたの答え