問題タブ [visualbrush]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - Datagrid 列のドラッグ インジケーターが切り取られる
編集:Pavel は、VisualBrush のせいではない可能性があることを示したので、特定の問題の質問の名前を変更しました。
例は WPF Datagrid です。列ヘッダーが部分的に表示されるまで右にスクロールします。部分的に表示されている列ヘッダーをドラッグして並べ替えます。ドラッグ インジケーターはヘッダーの部分ビューです (完全ではありません)。
私の解決策
-
ColumnReordering にサブスクライブし、ドラッグ インジケーターを独自のものに置き換えて、他のソリューションにまだ興味が
あります。自分のクラスの DataGridColumnFloatingHeader のソースをコピーします。ヘッダーを使用してビジュアル ブラシを作成する行を、ヘッダーの最初の子 (クリップされていない) を使用してビジュアル ブラシを作成する行に変更し、オフセットを削除して 0,0.. を使用します。
wpf - WPF の RenderTransform が予期しないレイアウトの変更を引き起こす
ビジュアルブラシ内で多数の形状をアニメーション化しようとしていますが、回転を実行すると形状が「パルス」します。形状が回転すると、バウンディング ボックスがレイアウト パスを強制していると想定しています。ただし、RenderTransform を使用しているため、これがレイアウトの変更をトリガーするとは思っていませんでした。
このコードは問題を示しています。
これは、ビジュアル ブラシを使用して、3D で操作される 2D 平面を装飾する、はるかに複雑なアプリケーションの単純なサンプルです。ブラシをアニメーション化するまでは、すべてうまく機能します。私はいくつかの異なるアプローチを試みましたが、常にこのレイアウトの問題に遭遇しているようです。
任意の提案をいただければ幸いです。
ありがとう
ロブ
c# - 画面上のコントロールから切り離した後、VisualBrush で RichTextBox テキストが消える
VisualBrush を介して行われるサムネイル プレビューがあります。Preview は、他の要素 RichTextBox と共に含まれる ItemsControl のものです。
ItemsControl がアプリケーション ビジュアル ツリーの一部である場合、すべてのプレビューとコントロール自体は問題なく表示されますが、アプリケーション ビジュアル ツリーから ItemsControl を削除すると (例: canvas.Remove(itemsControl))、RichTextBox コントロールがプレビューで非表示になります (VisualBrush)他のすべてのコントロールは通常どおり表示されます。
アプリケーション ビジュアル ツリーから切り離される前と切り離された後の RichTextBox のプロパティを比較しました。違いは IsLoaded プロパティ (TRUE の前、FALSE の後) と IsVisible (TRUE の前、FALSE の後) にあります。ただし、他の要素 (パスなど) にも同じ違いがあり、プレビューでは正しく表示されます。
canvas.Remove(itemsControl) を実行すると RichTextBox が非表示になりますが、他のコントロールは保持されます。どんなアイデアでも大歓迎です!
wpf - WPF VisualBrushは、タイリングの代わりにストレッチします
TileModeプロパティをTileに設定したVisualBrushがあります。
ただし、並べて表示するのではなく、伸縮します。誰か助けてもらえますか?
ありがとう
c# - OnRender() メソッドの DrawGeometry()
次のように OnRender-Method をオーバーライドする UserControl があります。
MyUsercontrol.cs:
上記で使用されている UserControl は次のようになります (追加の分離コードなしで xaml で定義されています)。
MyUserControl を使用すると、次の出力が得られます。
私の質問は、UserControl1-Rectangle の周りにこの透明な境界線を取得せずに、OnRender() メソッドで UserControl1 を使用する方法が存在するかどうかです。
よろしくお願いします、rhe1980
c# - ビューボックスで背景をぼかす
AEROガラスが提供するのと同様の効果、ぼやけたウィンドウを構築しています。これはWPFでは簡単ではないことにすぐに気付きましたが、ほぼ完全に機能させることができました。ビューボックスが関係しているときに私は立ち往生しています。
つまり、長方形を作成し、視覚的なブラシを作成して特定の背景要素の一部を取得し、ビューボックスを変換して、長方形が重なる画像のスペースを正確に取得し、それを長方形の塗りつぶしとして使用しました。
ElementNameグリッドは、長方形と画像の共通の親を参照します。それらを祖先にすることはできません。そうしないと、ブラー効果が妨げられます。だから私はそれらをグリッドに並べて配置します。
最後の部分は、VisualBrushビューボックスの実際の計算を行うMultivalueコンバーターです。
したがって、これはすべて、次の問題を再現するために必要です。コードをテストする場合は、単純なwpfアプリケーションに簡単に配置できます。
これをテストすると、正常に機能していることがわかります。ビューボックス内に長方形を配置し、固定サイズのグリッドを配置すると、問題が発生します(これは私の実際の問題を模倣しています)。
したがって、ビューボックスからのスケーリングはレイアウト後に適用されると推測しているため、TransformTo呼び出しでは認識されません。しかし、私はすでに変換でビューボックスの実際のスケーリングを使用しようとしましたが、運がありませんでした。ビューボックスがそこにある限り、私はそれを機能させることができないので、誰かが何が間違っている可能性があるのかを知っているか、もっと簡単な解決策を教えてくれることを願っています。そのコードを後でカスタムコントロールに変換して、それを簡単に再利用できるようにしたいので、特別な条件にあまり依存しない方法を好みます。
c# - Canvas を Visual 要素として使用すると、VisuaBrush のスケーリングが正しく行われない
私は数日間この問題と戦ってきましたが、解決したり、Web でサポートを見つけたりすることができませんでした。基本的に、ビジュアル要素としてキャンバスを使用して VisualBrush を作成しようとしています。このキャンバスに複数の線を描画できるようにしたいと考えており、最終的には 3D サーフェス (長方形を形成する 2 つの平行な三角形) にマッピングします。テクスチャ座標を設定し、ImageBrush などを使用するだけですべてが機能することを確認できます。私が抱えている問題は、キャンバスがそのサイズを維持することを拒否し、その中のコンテンツに基づいて常にスケーリングされることです. たとえば、キャンバスが 100x100 で、その中に (0, 0) から (50, 50) までの 1 行がある場合、キャンバスは、コンテンツを含む 50x50 の部分のみがテクスチャ座標と 3D サーフェスにマップされるようにスケーリングされます。Viewport/Viewbox/StretchMode/Alignment/etc の多くの組み合わせを試しましたが、これが起こらないようにするものは何も見つかりません。キャンバスの幅と高さのプロパティを設定しているので、グリッドや他のレイアウト コンテナーに単純に追加した場合と、VisualBrush でのパフォーマンスが異なる理由がわかりません。
問題を説明するのに役立つコードを次に示します。
そして、私が参照した1つの関数は
子コンテンツがこれらの極限まで行かない限り、キャンバスの設定サイズを 100x100 に維持することはできません。私の目的では、線の座標はキャンバス内のどこにでもある可能性があり、コンテンツに関係なく目的の形状を維持する必要があります。
どんなアドバイスでも大歓迎です!
c# - RenderTargetBitmap と VisualBrush をうまく連携させるにはどうすればよいですか?
私の要件:
UserControl
マップや描画などのカスタム イメージのロジックを処理する永続- ズームまたはパンの移動中に画像にキャッシュを実装するためのコンテナーのセット
VisualBrush
UserControl
エフェクトで使用するコンテナに追加できるのコピー
現在、RenderTargetBitmap を使用してイメージ キャッシングを実装していますが、使用しているVisualBrush
-coveredRectangle
オブジェクトに問題があるようです。
私の質問VisualBrush
:オブジェクトを使用した後にオブジェクトを正しくレンダリングするには、このコードに何を追加/変更できRenderTargetBitmap
ますか? 目に見えないようRenderTargetBitmap
にする奇妙なことは何ですか?VisualBrush
これは、かなりの量のコードがなければ再現できなかった問題です。
私のxamlファイルには次のものがあります:
および .xaml.cs:
コードに関するいくつかのヘルプ ノート:
- xaml は
_contentContainer
と連携しHardCopy()
て、現在の画像を画像キャッシュにコピーします_back
。 SoftCopy
過去のものとまったく同じように見えるが、変換、効果、または視覚的な親がない FrameworkElement を返します。これはとても重要です。BuildImage
初期画像が何らかの形で変換された後、キャッシュに貼り付けられる新しい画像の作成をシミュレートします。
SoftCopy()
から を削除してアプリケーションをビルドして実行すると、目的_body.Children.Add(SoftCopy(Control));
の効果が得られます。新しい要素が古い要素の上に貼り付けられ、古い要素がその変換を保持しているように見えます。
var rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);
または、から行を切り取るHardCopy
と、キャッシュ機能は壊れますが、SoftCopy は正しく表示されます。
ただし、アプリケーションをそのまま実行すると、新しい BlueRectangle (VisualBrush を介してレンダリングされたもの) がまったく表示されないことがわかります。これは、[新規] ボタンをもう一度押して画像をキャッシュにプッシュし、それでもなお新しく作成された画像が表示されません。
c# - 中央の画像がタイル状になる左、中央、右の画像で構成されるブラシを作成する
パネルの背景として使用されるブラシを WPF で作成する必要があります。ブラシの高さは固定ですが、幅は可変です。左と右の画像が固定されている間、中央の画像はスペースを埋めるために並べて表示する必要があります。VisualBrush と画像付きのグリッドを試してみましたが、正しく配置/スケーリングされません。これは、固定幅で機能する描画ブラシです。可変幅のパネルの中央の画像を並べて表示するにはどうすればよいですか?
wpf - 移動中の画像の VisualBrush に関する WPF の問題
私はイメージを持っており、オブジェクトをあるポイントから別のポイントに移動するときに、イメージのビジュアル ブラシを作成しました。しかし、ビジュアルブラシに画像が表示されません。私の長方形が表示されている場合は、画像が表示されていると思われます。
画像を参照してください: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e8833983-3d73-45e1-8af1-3bc27846441d
コードは次のとおりです。
助けてください
ありがとう