問題タブ [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.
c# - WPFキャンバスのスケーリング/フィットするように変換
前回あまり回答が得られなかったので、この質問を再投稿します。
基本的に私がやろうとしているのは、データバインドされたキャンバスを作成することです。これは、使用可能なスペースを「埋める」ためにコンテンツを自動的にスケーリングします。操作に合わせてズームするようなものです。残念ながら、私の WPF スキルはまだそれほど強力ではなく、この最後の部分を行う方法を見つけるのに苦労しています。キャンバスをバインドするためにいくつかのデータバインディングの例に従いましたが、それが間違っていて邪魔になっているかどうかはわかりません。
解決策に取り組む方法に応じて、現時点で2つの基本的な問題があります。
- 変換を使用して可能であれば、XAML を使用してキャンバスを自動的に再スケーリングする方法がわかりません。
- 背後のコードでキャンバスを参照できないようです。これは ItemsControl の一部であるためだと思います。
私が達成しようとしていることの例として、AI に B を試してもらいたい:
( img への期限切れのリンクを削除しました)
私が現在使用しているコードは非常に単純で、特定の座標で 4 つのドットを作成し、これらをラップする別のビュー モデルを作成するだけです。
次に、PointCollectionViewModel が AutoResizingCanvas の DataContent として使用されます。この AutoResizingCanvas には、バインディングを実装する次の XAML があります。
wpf - WPF私のScaleTransform Frozenはなぜですか?どうすればそれにバインドできますか?
ScaleTransform
次のように、コード ビハインドでプロパティを DP にバインドする非常に単純なユーザー コントロールがあります。
そして、コードビハインドでこれを行います:
しかし、次のようなエラーが表示されました。
オブジェクト '...' は読み取り専用状態であるため、プロパティを設定できません。
だから私はそれを次のように変更しました:
しかし、実際には何もしません...キャンバスにスケールが適用されません。
でも
のバインディングを削除し、ScaleTransform
それを空の XAML 要素として持つと、次のようになります。
次に、私のコードでこれを行います:
できます!スケールを適用します
だから2つの質問:
- なぜ私の変換
Frozen
が最初の場所なのですか? - トランスフォームのクローンを作成すると、バインドが機能しないのはなぜですか?
皆さんありがとう!
アップデート:
DP の定義は次のとおりです。
silverlight - XAML: 子オブジェクトの ScaleTransform が大きくなったときに ScrollViewer にスクロールバーを表示させる
Silverlight 3 アプリケーションで、いくつかのドキュメントの一種の「印刷プレビュー」コントロールを作成しています。ScrollViewer 内に Canvas (ドキュメントを表示するため) があり、Canvas.RenderTransform プロパティの ScaleTransform の X および Y Scale プロパティを制御するズームイン/ズームアウト ボタンがあります。ScrollViewer 領域にキャンバスが表示されなくなるほど十分に「ズームイン」すると、ScrollViewer のスクロールバーが表示されるようにしたいのですが、キャンバス自体の幅/高さに応じてのみ表示されるようです。ズームインしているかどうか。
誰でも助けることができますか?
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.
.net - .NET Graphics.ScaleTransformは、印刷ジョブをビットマップに変換します。テキストを拡大縮小する他の方法はありますか?
私はGraphics.ScaleTransform
、テキストの行をページの幅に合うように引き伸ばしてから、そのページを印刷するために使用しています。ただし、これにより印刷ジョブがビットマップに変換されます。ページ数が多い印刷の場合、これにより印刷ジョブのサイズがわいせつな比率になり、印刷速度が大幅に低下します。
このようにスケーリングしないと、テキスト印刷コマンドをプリンターに送信するだけなので、印刷ジョブは非常に小さいままです。
Graphics.ScaleTransform
私の質問は、テキストの幅を伸ばすために使用する以外の方法はありますか?
これを示すサンプルコードを以下に示します(印刷ジョブでのスケーリングの効果を示すためにと呼ばれます)Print.Test(True)
。Print.Test(False)
更新:代わりにGDI呼び出しとの相互運用を使用しました。関連するコードは次のとおりです。GDIクラスには、関連する関数と定数についてWiki( http://pinvoke.net/ )からコピーした定義がたくさんあります。
wpf - 画像の ScaleTransform
画像のサイズを 20 大きくしようとしています。そのため、以下に示すように ScaleTransform を使用しています。しかし、次のコードはスケール変換を実行しません。
wpf - ScaleTransform と CenterX
次のコードがあります
UserControl では、ScaleTranform を 1 にアニメーション化します。UserControl をその中心から「成長」させたいのですが、左上隅から「成長」させます。CenterX と CenterY の値は何もしません。必要に応じてスケールするにはどうすればよいですか?
wpf - ScaleTransform は非線形に変換します
ユーザーがコントロールのサイズを変更できるように、スケール変換を使用しています。ただし、マウスを動かし始めると、コントロールが新しいサイズにジャンプし、奇妙なスケールになります。マウスを開始位置から遠くに動かすほど、サイズが大きくなります。
スケールを計算する方法が適用されることを期待しています。コードは次のとおりです。
更新: XAML を使用するようになりました
python - 再描画中に Clutter CairoTexture にズームインする
私はpython-clutter 1.0を使用しています
挑戦という形での私の質問
キーを押すことで CairoTexture アクターにズームアップできるようにするコードを記述します。各段階で (cairo によって) アクターを再描画できるようにします。アクターのサイジング。
Inkscape のようなものと、ベクトルを拡大する方法を考えてみてください。どの倍率でもベクトルがきれいに保たれるか。パス (カイロline_to
コマンドの束など) を CairoTexture アクターに配置し、同じトリックが発生するようにします。
もっと詳しく
アクターのグループを使用する小さな SVG エディターを目指しています。各アクターは、1 つのパスに専念しています。を使用して「ズーム」しSomeGroup.set_depth(z)
、z を大きく/小さくします。これまでのところすべて順調です。ただし、アクターがカメラに近づくほど、新しい見た目のサイズに合わせてテクスチャが引き伸ばされます。
Clutter に両方を実行させる方法が見つからないようです。
- アクターの実際のサイズは静的のままにします (つまり、最初のサイズ)。
- その下にあるサーフェスを (ズームインして) 大きなものに交換し、パスを再描画できます (そして、カイロ マトリックスを使用してコンテキストのスケーリングを実行します)。
set_size
またはを使用すると、意図しないset_surface_size
ようにアクターが大きくなります。表面(基礎となるデータ)を大きくしたいだけです。
(これの用語がよくわかりません。おそらくミップマッピングですか?)
別の言い方をすると、ポリゴンが大きくなり、そのテクスチャ配列のサイズを増やして、より大きなポリゴンにマップできるようにします。
再作成した2 番目のサーフェス (pycairo を使用) をアクターの見かけのサイズget_transformed_size
(set_from_rgb_data
アクターの寸法ではなく、表面のサイズです。
これに関する問題は、a) クラッターが新しいサイズを無視し、古い幅/高さにのみ描画されることと、b) RGBA と ARGB32 のようなものが色のメルトダウンを引き起こすことです。
私はどんな代替案にもオープンです。すべての木が欠けている森の中に立っていることを願っています!
\d
silverlight - Silverlight スケールトランスフォーム調整スクロールバー
次の UI 要素階層があります: UserControl>ScrollViewer>Canvas。キャンバスにたくさんのものを描いていますが、UserControl よりも大きくなり、その時点で ScrollViewer にスクロールバーが表示されます。ここまでは順調ですね。ここで、ScaleTransform を Canvas に適用します (たとえば、2.0 で、すべてを 2 倍の大きさにします)。ただし、スクロールバーが調整されないため、拡大したキャンバスの途中までしかスクロールできません。ScrollViewer 内に表示されているキャンバスに scaletransform を適用するときに、ScrollViewer スクロールバーを調整するにはどうすればよいですか?