none
C#、VB.NET用のコントロールをWPFから操作したい RRS feed

  • 質問

  • お世話になります。

    こんなことは可能でしょうか?

    WPF外で作られたコントロールがあります。
    それをWPFのコントロール上で使いたいのです。

    具体的にいいますと、以下のようなフリーのコントロールがあります。
    以下は、C#、VB.NET用の縦書きが出来るのテキストボックスです。
    http://www.vector.co.jp/soft/winnt/prog/se395668.html

    これをWPFのLabel or TextBlockの上に貼り付けて表示、WPFから操作したいと考えております。

    こういったことは可能でしょうか?DLLなので可能とは思いますが・・・具体的な方法が分かりません。

    良ければヒントだけでもお願いいたします。

    ※WPFで縦書きのコントロールが見当たらないため、このようなことを考えましたorz 元々は、縦書き入力がしたいだけです。。。


    • 編集済み sumi_sumi 2012年8月29日 1:01
    2012年8月29日 0:59

回答

  • VS2010の環境ですが、とりあえず動くものが出来たので・・・

    <Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:tt="clr-namespace:Alapon.Controls.TextBox;assembly=TateBox"     
        Title="Window1" Height="300" Width="300">
        <Grid>
            <WindowsFormsHost>
                <tt:TateBox Text="縦書き"/>
            </WindowsFormsHost>
        </Grid>
    </Window>

    >> xmlns:tt="clr-namespace:Alapon.Controls.TextBox.TateBox;assembly=Alapon.Controls.TextBox.TateBox"

    これを

    xmlns:tt="clr-namespace:Alapon.Controls.TextBox;assembly=TateBox"

    に書き換えてみてください。

    • 回答としてマーク sumi_sumi 2012年8月31日 7:38
    2012年8月30日 4:55

すべての返信

  • WPF外で作られたコントロールがあります。それをWPFのコントロール上で使いたいのです。


    WindowsFormsHost を使えば WindowsForms で作られたコントロールをWPF のWindow に表示可能です。

    ※WPFで縦書きのコントロールが見当たらないため、このようなことを考えましたorz 元々は、縦書き入力がしたいだけです。。。

    縦書きについてはこういう記事があります。

    http://d.hatena.ne.jp/hilapon/20101128/1295710863


    ひらぽん http://d.hatena.ne.jp/hilapon/

    2012年8月29日 1:07
    モデレータ
  • ひらぽん さま

    有難う御座います。

    WindowsFormsHostというものを知りませんでした。
    早速調べてみます。


    記事の件ですがこちらは参考にしましたが、行いたいことは直接入力でして
    一番上の記事「関連記事 : WPF の縦書き」がそうなのですが、C(C++)など
    まったく理解出来ずに断念したのですorz
    2012年8月29日 1:21
  • お世話になります。

    MSの記事にXAMLサンプルがありましたので、まずそれを動かしました。

    その後、それを元に以下のようにしてみましたが、エラーが表示されます。

    <Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
        xmlns:tt="clr-namespace:Alapon.Controls.TextBox.TateBox;assembly=Alapon.Controls.TextBox.TateBox"      
        Title="Window1" Height="300" Width="300">
        <Grid>
            <WindowsFormsHost>
                <tt:TateBox Text="縦書き"/>
            </WindowsFormsHost>
        </Grid>
    </Window>

    エラーメッセージ↓

    エラー    1    タグ 'TateBox' は、XML 名前空間 'clr-namespace:Alapon.Controls.TextBox;assembly=Alapon.Controls.TextBox' にありません。
    行 9 位置 14.    C:\Documents and Settings\USER\デスクトップ\PG\WPFサンプル\051_WindowsフォームコントロールをWPF要素に配置する\WpfApplication1\Window1.xaml    9    14    WpfApplication1




    TateBoxへの参照が正しくないのかな?とは思い、以下の一行を色々さわってますが変わりません。
    以下が正しくなかったでしょうか?
    xmlns:tt="clr-namespace:Alapon.Controls.TextBox;assembly=Alapon.Controls.TextBox" 


    • 編集済み sumi_sumi 2012年8月29日 1:46
    2012年8月29日 1:44
  • そのassemblyであるdll、もしくはプロジェクトは、WpfApplication1プロジェクトで正しく参照設定されていますか?


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/


    2012年8月29日 2:05
    モデレータ
  • trapemiya さま

    いつも有難う御座います。

    はい、ソリューションエクスプローラーの参照設定から「Alapon.Controls.TextBox.TateBox.dll」を追加しております。
    2012年8月29日 3:02
  • Alaponはどこで見つけられたのでしょうか? 私の方で探してみましたが、わかりませんでした。
    わかれば私の方でも試してみたいと思います。

    #Alaponは「ひらぽん」と似ていますが、ひらぽんさんが作られたものなのでしょうか??


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2012年8月30日 4:15
    モデレータ
  • Alaponはどこで見つけられたのでしょうか? 私の方で探してみましたが、わかりませんでした。
    わかれば私の方でも試してみたいと思います。

    #Alaponは「ひらぽん」と似ていますが、ひらぽんさんが作られたものなのでしょうか??

    いえ、違います ^^;

    たぶんこれではないでしょうか?

    http://www.vector.co.jp/soft/winnt/prog/se395668.html

    #(追記)最初の質問で提示されてましたね。失礼しました。<(_ _;)>


    ひらぽん http://d.hatena.ne.jp/hilapon/


    2012年8月30日 4:23
    モデレータ
  • VS2010の環境ですが、とりあえず動くものが出来たので・・・

    <Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:tt="clr-namespace:Alapon.Controls.TextBox;assembly=TateBox"     
        Title="Window1" Height="300" Width="300">
        <Grid>
            <WindowsFormsHost>
                <tt:TateBox Text="縦書き"/>
            </WindowsFormsHost>
        </Grid>
    </Window>

    >> xmlns:tt="clr-namespace:Alapon.Controls.TextBox.TateBox;assembly=Alapon.Controls.TextBox.TateBox"

    これを

    xmlns:tt="clr-namespace:Alapon.Controls.TextBox;assembly=TateBox"

    に書き換えてみてください。

    • 回答としてマーク sumi_sumi 2012年8月31日 7:38
    2012年8月30日 4:55
  • みっとさま

    お返事遅くなりすみません。

    有難う御座います。

    VS2008でも問題なく動きました。

    最後まで本当に有難う御座います。

    2012年8月31日 7:40