0

AutoCADでインフォボックス機能を作成したいと思います。Google Earthの一部の機能にカーソルを合わせると、画像付きのインフォボックスが表示されます。

このようなもの

パレットの使用を考えていましたが、インフォボックスのように調整する方法がわかりません。

.NEtプラグインを作成する予定です。

助言がありますか?

4

3 に答える 3

3

**そうですね、AutoCADのツールチップを使用するのが最善の方法だと思います。コードスニペットは次のとおりです。

Autodesk.Windows.ComponentManager.ToolTipOpened +=
            (s, e) =>
            {       
                Autodesk.Internal.Windows.ToolTip tooltip =
                s as Autodesk.Internal.Windows.ToolTip;
                if (tooltip != null)
                {                     
                        var image = new System.Windows.Controls.Image();
                        var bitmapImage = new BitmapImage();
                        bitmapImage.BeginInit();
                        bitmapImage.UriSource = new Uri(@"C:/index.jpeg");
                        bitmapImage.EndInit();
                        image.Source = bitmapImage;
                        tooltip.Height = image.Height;
                        tooltip.Width = image.Width;
                        tooltip.Content = image;
                }
            };

今は元気そうです。:)**

以下のコメントで述べたように、ここにこのソリューションのスクリーンショットがあります

ここに画像の説明を入力してください

お気づきかもしれませんが、ツールチップがジオメトリの近くに配置されていないため、ピンクのツールチップを選択しました。それが私の最後の問題です。私のフローは、オブジェクトを選択すると、このエンティティに接続されたいくつかの画像ファイルを提供するwinフォームlistBoxを取得したことです。いずれかを選択すると、tootltipが開きますが、リストボックスダイアログに比較的関連しているようです。ツールチップの位置を手動で設定する方法を見つけることができませんでした。助言がありますか?

于 2012-06-06T21:56:40.603 に答える
2

PointMonitorを使用して、マウスの動きを検出できます。http: //through-the-interface.typepad.com/through_the_interface/2009/07/pproving-information-on-autocad-objects-in-a-tooltip-using-net .html

また、画像を表示するには、パレットでWPFを使用できます:http://through-the-interface.typepad.com/through_the_interface/2009/08/hosting-wpf-content-inside-an-autocad-palette.html

于 2012-06-04T07:20:41.543 に答える
0

PointMonitorを使用して、関心のあるエンティティがカーソル位置の下にあるかどうかを検出し、該当する場合は独自のウィンドウをポップアップして、リストボックスやコンボボックスなどに画像を保持する方が制御性と柔軟性が高くなります。ウィンドウは、選択したWPFまたはWinFormにすることができます。

それは間違いなく実行可能であり、一部のアプリケーションはすでにこれらの手法をかなり成熟して使用しています。ウィンドウピクセルからAutoCADディスプレイシステムまで、DCSからWCSまで、前後に、いくつかの調整変換要素を考慮する必要があります。

さて、残っているのはパフォーマンスだけかもしれません。次のヒントが少し役立つことを願っています。

  1. 前のエンティティIDをキャッシュします。カーソルがまだカーソルの上にある場合は、前の画像をそこに保持する以外に何もしません。
  2. ユーザーがカーソルをあるエンティティから別のエンティティにすばやく移動する場合、前のウィンドウを破棄して新しいウィンドウを作成する必要がない場合があります。画像を置き換えるだけで十分で、良いはずです。
  3. サムネイル、プレビュー、ファインなど、同じ画像のさまざまな解像度を提供し、カーソルがサムネイルだけで1秒より短い場合や、5秒より長い場合はファイン画像を表示するなど、さまざまな時間に表示します。
  4. これらを構成するいくつかの方法をユーザーに提供することをお勧めします。
于 2012-06-18T23:54:51.430 に答える