Sonunda, WFF'nin sınırları dahilinde WinForms veya PInvokes kullanmadan yönetti. Özel imleçler (* .cur) oluşturmak veya imleç içine Visual
s dönüştürmek yerine, imleç olarak bir WPF öğesi (Path
) ile birlikte ana denetimin MouseMove
olayını kullandım. İşte her ihtimale karşı herkes interesed edilir yolu şudur: WPF varsayılan oku görüntülemek kalmaması
- , sizin boyutlandırma başparmak (veya şeklin sınırı olarak kullandığınız ne olursa olsun)
None
ila Cursor
ayarlayın.
Kendi imlecinizi oluşturun. Herhangi bir FrameworkElement
olabilir, ama istediğiniz herhangi bir şekil oluşturmak için kolay manipülasyon için Path
kullandım. Aşağıda belirlediğim özelliklerin çoğunun önemli olduğunu unutmayın.
<Path x:Name="PART_EW" Data="M0,20 L25,0 25,15 75,15 75,0 100,20 75,40 75,25 25,25 25,40z" Fill="White" Stroke="Black" StrokeThickness="1" Visibility="Collapsed" Width="50" Height="20" Opacity=".7" Stretch="Fill" Panel.ZIndex="100001" HorizontalAlignment="Left" VerticalAlignment="Top" IsHitTestVisible="False" />
sizin boyutlandırma başparmak aşağıdaki kodu ekleyin: her yerde kodunda benim
Path
arasında
RotateTransform
ayarlanmamış ettik
protected override void OnMouseEnter(MouseEventArgs e)
{
base.OnMouseEnter(e);
var Pos = e.GetPosition(this);
PART_EW.Margin = new Thickness(
Pos.X - PART_EW.Width/2,
Pos.Y - PART_EW.Height/2,
-PART_EW.Width,
-PART_EW.Height);
PART_EW.Visibility = Visibility.Visible;
}
protected override void OnMouseLeave(MouseEventArgs e)
{
base.OnMouseLeave(e);
PART_EW.Visibility = Visibility.Collapsed;
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
var Pos = e.GetPosition(designerItem);
PART_EW.Margin = new Thickness(
Pos.X - PART_EW.Width/2,
Pos.Y - PART_EW.Height/2,
-PART_EW.Width,
-PART_EW.Height);
}
Not, zaten bir parçası olduğu için yeniden boyutlandırma başparmağı ve bu nedenle ana kontrolün açısını otomatik olarak alır. Umarım bu, insanların yolun aşağısında olmasına yardımcı olur.
[Döndürülmüş Metin Kutusuna Göre İmleci Döndürme] 'nin olası kopyası (http://stackoverflow.com/questions/2835502/rotating-cursor-according-to-rotated-textbox) –
@FirstStep: Bu yanıtın yorumlarında daha önce belirtildiği gibi Bu kodda birkaç hata var. Ayrıca WinForms kütüphanelerini kullanır; Başka bir yol olmadıkça kaçınmak istiyorum. – dotNET
Bana göre, bu iki soru arasında makul bir fark var. Bunun bir kopya olarak kapatılması gerektiğini düşünmüyorum. – arbitrarystringofletters