2011-11-14 1 views
0

Quelqu'un sait:Contrôles origine Changement

  1. Pourquoi l'origine dans certains contrôles est au centre de la Bounds, dans certains au coin TopRight et dans certains à TopRight - 10px?
  2. Comment changer l'origine d'un contrôle dans WPF?

méthodes éprouvées:

  1. Pour obtenir origine du contrôle dans une toile: myControl.TranslatePoint(new Point(0,0),null);
  2. Essayé:

myControl.RenderTransformOrigin = new Point(0.0,0.0); myControl.RenderTransformOrigin = new Point(0.5,0.5); myControl.RenderTransformOrigin = new Point(1.0,1.0); essayé de changer VerticalAlignment et HorizontalAlignment. Rien n'est arrivé.

Comme l'analyse, j'essayé de mettre une ligne rouge dans MouseMove événement qui a comme point de départ la toile Origine et comme Point final:

myLine.X2 = myControl.TranslatePoint(new Point(0,0),null).X; myLine.Y2 = myControl.TranslatePoint(new Point(0,0),null).Y; Ce point de ligne dans certaines commandes du Centre de contrôle, et d'autres contrôles dans le coin en haut à droite, mais JAMAIS en haut à gauche.

Les alignements de TOUS les contrôles sont définis sur Stretch/Stretch.

Répondre

0

googler autour, j'ai trouvé quelques explications intéressantes de scénario similaire, en raison de DPI modifications/paramètres: J'ai essayé simplement COMMUTATION DPI à 120% de 100% et Retour:

WPF rapporte maintenant un autre positionnement MAUVAIS des contrôles sur ma toile, mais tous les problèmes dans mes questions, semble maintenant avoir une explication, pas encore une solution. Comment un mauvais jeu DPI peut-il influencer SEULEMENT les processus HitTest, TranslateTransforms et Render, sans influencer les propriétés Canvas.SetLeft/Right/Top/Bottom ou Margin propery ou ScaleTransform?

J'ai lu sur DisableDpiAwarenessAttribute dans l'assemblage, mais il semble ne pas fonctionner ... Que peut-il être?