私はシルバーライトに慣れていないので、プロからもう少し理解したい. 私がやろうとしていることをお話ししましょう。私は写真が好きで、私の目標は、ユーザーが自分の画像を表示し、回転、ズーム、トリミング、特殊効果などを行えるようにする Web サイトを作成することです。ユーザーが写真を注文できる Web サイトを開発しましたが、今は実際の画像/画像操作の作業を開始します。テストのために、キャンバスと長方形(画像付き)を配置しました。スライダーを配置し、スライダーを長方形にリンクできました。スライダーを大きくすると、画像が大きくなります。しかし、イメージが大きくなっても、キャンバスの境界を超えないことを願っていました。それがキャンバスの子であることの意味だと思いました。私は間違っていますか?もしそうなら、あなたは私にこれをどのように勧めますか?私はこれに非常に慣れておらず、これについて非常に間違っている可能性があることを忘れないでください. ありがとう!
1 に答える
あなたは正しいです。Silverlightでは(WPF、WinFormsなどのように)、GUI要素は要素の階層を形成し、コントロールは親または子として機能できます。
長方形がコンテナの境界を超える理由は、コントロールの配置方法にあります。これは、子供をどのような種類の容器に入れたいかによって異なります。
たとえば、キャンバスでは、絶対的な測定値(左、上、高さ、幅)で子を配置します。StackPanelのような自己組織化コンテナでは、水平方向の配置(Left、HCenter、HStretch、Right)または垂直方向の配置(Top、VCenter、VStretch、Bottom)を選択して、親の内部に配置したときの子の動作を決定します。さらに、子の寸法(幅、高さ)と、子を囲む親に対する子の上部、右側、下部、および左側の境界間のギャップを決定するオプションのマージンを指定できます。
しかし、どのコンテナを選択しても、その子をその境界を超えさせることができます。たとえば、コンテナの境界よりも負または大きいマージンで、または単に状況を説明したときにそのコンテナよりも寸法が大きい子によって、その子を超えることができます。あなたの長方形で。
あなたの場合、私はクリッピングのアイデアで作業することを検討します。クリッピングとは、単に
(1)いくつかのグラフィカルコンテキスト(UIまたはコントロールなどの一部のセクション)上にある幾何学的領域(SilverlightおよびWPFではPathオブジェクト)を定義します。
(2)このクリッピング領域の境界の内側にあるものは表示されたままで、他のすべては表示されないままです。
したがって、クリッピング領域は、画面を見るときに使用する画面上のウィンドウと考えることができます。
Microsoft Blendを使用している場合、これは簡単に実現できます。
(1)長方形、円、カスタムパスなどの幾何学的形状を使用するだけです。
(2)UIのどこかに配置します
(3)図形を右クリックし、[パス]、[クリッピングパスの作成]の順に選択します。
(4)とvoulà、コントロールの変更に使用するときに変更できるクリッピング領域を定義しました。
これがあなたの問題に対処する方法のアイデアをあなたに与えたことを願っています。乾杯。