問題タブ [scaletransform]

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.

0 投票する
1 に答える
44383 参照

c# - WPFキャンバスのスケーリング/フィットするように変換

前回あまり回答が得られなかったので、この質問を再投稿します。

基本的に私がやろうとしているのは、データバインドされたキャンバスを作成することです。これは、使用可能なスペースを「埋める」ためにコンテンツを自動的にスケーリングします。操作に合わせてズームするようなものです。残念ながら、私の WPF スキルはまだそれほど強力ではなく、この最後の部分を行う方法を見つけるのに苦労しています。キャンバスをバインドするためにいくつかのデータバインディングの例に従いましたが、それが間違っていて邪魔になっているかどうかはわかりません。

解決策に取り組む方法に応じて、現時点で2つの基本的な問題があります。

  • 変換を使用して可能であれば、XAML を使用してキャンバスを自動的に再スケーリングする方法がわかりません。
  • 背後のコードでキャンバスを参照できないようです。これは ItemsControl の一部であるためだと思います。

私が達成しようとしていることの例として、AI に B を試してもらいたい:

( img への期限切れのリンクを削除しました)

私が現在使用しているコードは非常に単純で、特定の座標で 4 つのドットを作成し、これらをラップする別のビュー モデルを作成するだけです。

次に、PointCollectionViewModel が AutoResizingCanvas の DataContent として使用されます。この AutoResizingCanvas には、バインディングを実装する次の XAML があります。

0 投票する
1 に答える
2643 参照

wpf - WPF私のScaleTransform Frozenはなぜですか?どうすればそれにバインドできますか?

ScaleTransform次のように、コード ビハインドでプロパティを DP にバインドする非常に単純なユーザー コントロールがあります。

そして、コードビハインドでこれを行います:

しかし、次のようなエラーが表示されました。

オブジェクト '...' は読み取り専用状態であるため、プロパティを設定できません。

だから私はそれを次のように変更しました:

しかし、実際には何もしません...キャンバスにスケールが適用されません。

でも

のバインディングを削除し、ScaleTransformそれを空の XAML 要素として持つと、次のようになります。

次に、私のコードでこれを行います:

できます!スケールを適用します

だから2つの質問:

  1. なぜ私の変換Frozenが最初の場所なのですか?
  2. トランスフォームのクローンを作成すると、バインドが機能しないのはなぜですか?

皆さんありがとう!

アップデート:

DP の定義は次のとおりです。

0 投票する
1 に答える
7961 参照

silverlight - XAML: 子オブジェクトの ScaleTransform が大きくなったときに ScrollViewer にスクロールバーを表示させる

Silverlight 3 アプリケーションで、いくつかのドキュメントの一種の「印刷プレビュー」コントロールを作成しています。ScrollViewer 内に Canvas (ドキュメントを表示するため) があり、Canvas.RenderTransform プロパティの ScaleTransform の X および Y Scale プロパティを制御するズームイン/ズームアウト ボタンがあります。ScrollViewer 領域にキャンバスが表示されなくなるほど十分に「ズームイン」すると、ScrollViewer のスクロールバーが表示されるようにしたいのですが、キャンバス自体の幅/高さに応じてのみ表示されるようです。ズームインしているかどうか。

誰でも助けることができますか?

0 投票する
1 に答える
30135 参照

wpf - Scale transform in xaml (in a controltemplate) on a button to perform a "zoom"

I've got a button with an image in it and it's being styled by the following:

Button is as follows:

The problem is that the width doesn't change when my mouse goes over. (Or at least - the width of the image does not...)

I believe there is a "scale" transform I can use to enlarge the button and all it's contents? how would I do that here...?

Thanks.

0 投票する
2 に答える
1212 参照

.net - .NET Graphics.ScaleTransformは、印刷ジョブをビットマップに変換します。テキストを拡大縮小する他の方法はありますか?

私はGraphics.ScaleTransform、テキストの行をページの幅に合うように引き伸ばしてから、そのページを印刷するために使用しています。ただし、これにより印刷ジョブがビットマップに変換されます。ページ数が多い印刷の場合、これにより印刷ジョブのサイズがわいせつな比率になり、印刷速度が大幅に低下します。

このようにスケーリングしないと、テキスト印刷コマンドをプリンターに送信するだけなので、印刷ジョブは非常に小さいままです。

Graphics.ScaleTransform私の質問は、テキストの幅を伸ばすために使用する以外の方法はありますか?

これを示すサンプルコードを以下に示します(印刷ジョブでのスケーリングの効果を示すためにと呼ばれます)Print.Test(True)Print.Test(False)

更新:代わりにGDI呼び出しとの相互運用を使用しました。関連するコードは次のとおりです。GDIクラスには、関連する関数と定数についてWiki( http://pinvoke.net/ )からコピーした定義がたくさんあります。

0 投票する
1 に答える
15249 参照

wpf - 画像の ScaleTransform

画像のサイズを 20 大きくしようとしています。そのため、以下に示すように ScaleTransform を使用しています。しかし、次のコードはスケール変換を実行しません。

0 投票する
6 に答える
9929 参照

wpf - ScaleTransform と CenterX

次のコードがあります

UserControl では、ScaleTranform を 1 にアニメーション化します。UserControl をその中心から「成長」させたいのですが、左上隅から「成長」させます。CenterX と CenterY の値は何もしません。必要に応じてスケールするにはどうすればよいですか?

0 投票する
1 に答える
1814 参照

wpf - ScaleTransform は非線形に変換します

ユーザーがコントロールのサイズを変更できるように、スケール変換を使用しています。ただし、マウスを動かし始めると、コントロールが新しいサイズにジャンプし、奇妙なスケールになります。マウスを開始位置から遠くに動かすほど、サイズが大きくなります。

スケールを計算する方法が適用されることを期待しています。コードは次のとおりです。

更新: XAML を使用するようになりました

0 投票する
1 に答える
567 参照

python - 再描画中に Clutter CairoTexture にズームインする

私はpython-clutter 1.0を使用しています

挑戦という形での私の質問

キーを押すことで CairoTexture アクターにズームアップできるようにするコードを記述します。各段階で (cairo によって) アクターを再描画できるようにします。アクターのサイジング。

Inkscape のようなものと、ベクトルを拡大する方法を考えてみてください。どの倍率でもベクトルがきれいに保たれるか。パス (カイロline_toコマンドの束など) を CairoTexture アクターに配置し、同じトリックが発生するようにします。

もっと詳しく

アクターのグループを使用する小さな SVG エディターを目指しています。各アクターは、1 つのパスに専念しています。を使用して「ズーム」しSomeGroup.set_depth(z)、z を大きく/小さくします。これまでのところすべて順調です。ただし、アクターがカメラに近づくほど、新しい見た目のサイズに合わせてテクスチャが引き伸ばされます。

Clutter に両方を実行させる方法が見つからないようです。

  1. アクターの実際のサイズは静的のままにします (つまり、最初のサイズ)。
  2. その下にあるサーフェスを (ズームインして) 大きなものに交換し、パスを再描画できます (そして、カイロ マトリックスを使用してコンテキストのスケーリングを実行します)。

set_sizeまたはを使用すると、意図しないset_surface_sizeようにアクターが大きくなります。表面(基礎となるデータ)を大きくしたいだけです。

(これの用語がよくわかりません。おそらくミップマッピングですか?)

別の言い方をすると、ポリゴンが大きくなり、そのテクスチャ配列のサイズを増やして、より大きなポリゴンにマップできるようにします。

再作成した2 番目のサーフェス (pycairo を使用) をアクターの見かけのサイズget_transformed_size(set_from_rgb_dataアクターの寸法ではなく、表面のサイズです。

これに関する問題は、a) クラッターが新しいサイズを無視し、古い幅/高さにのみ描画されることと、b) RGBA と ARGB32 のようなものが色のメルトダウンを引き起こすことです。

私はどんな代替案にもオープンです。すべての木が欠けている森の中に立っていることを願っています!

\d

0 投票する
2 に答える
1090 参照

silverlight - Silverlight スケールトランスフォーム調整スクロールバー

次の UI 要素階層があります: UserControl>ScrollViewer>Canvas。キャンバスにたくさんのものを描いていますが、UserControl よりも大きくなり、その時点で ScrollViewer にスクロールバーが表示されます。ここまでは順調ですね。ここで、ScaleTransform を Canvas に適用します (たとえば、2.0 で、すべてを 2 倍の大きさにします)。ただし、スクロールバーが調整されないため、拡大したキャンバスの途中までしかスクロールできません。ScrollViewer 内に表示されているキャンバスに scaletransform を適用するときに、ScrollViewer スクロールバーを調整するにはどうすればよいですか?