2011-12-30 13 views
5

Kullanıcı, kod görünümünü yeniden boyutlandırdığında yeniden boyutlandırılması gereken çizgi süslemeleri oluşturduğum bir Visual Studio eklentisi yazıyorum. Yani Kullanıcı Visual Studio'nun pencere genişliğini yeniden boyutlandırdığında, hem donatının genişliğini hem de yüksekliğini değiştiririm. IWpfTextView.LayoutChanged olayını ele alıyorum ve buradaki süslemelerimi yeniden boyutlandırıyorum. Süslemelerin altındaki çizgilerle örtüşmesini önlemek için, aynı zamanda süslemenin büyüklüğünü karşılamak için hattın yüksekliğini genişletmek üzere ILineTransformSource.GetLineTransform'u uyguladık. (IWpfTextView.LayoutChanged olayını işlerken) ben süslemeleri boyutlarını değiştirdiğinizdeSatır süslemesi boyutlarında değişiklik yapmak için bir VS uzantısında ILineTransformSource.GetLineTransform çağrısına nasıl zorlarsınız?

Ancak, hat dönüştürmek yeniden boyutlandırmak için benim ILineTransformSource.GetLineTransform işlevine değil alma çağrıları değilim. Bu, altındaki çizgiyle örtüşen süslemeden ayrılır. Bir aramayı ILineTransformSource.GetLineTransform'a zorlamanın hiçbir yolunu bulamıyorum. (Ancak, kullanıcı görünümü kaydırırsa, bu çağrıları alırım. Ancak, kullanıcıyı görsel bir hata gidermek için pencereyi kaydırmaya zorlamak istemiyorum.)

Bir yol biliyor mu? Visual Studio'yu ILineTransformSource.GetLineTransform numaralı telefonumu aramaya zorlamak için, süslemelerim yükseklik değiştirdiğinde hat dönüşümlerini yeniden boyutlandırabilir miyim?

+0

Bunu anladınız mı? Süslemem için de yer açmalıyım. – jwize

cevap

2

IWpfTextView.DisplayTextLineContainingBufferPosition yöntemini çağırmayı deneyin - bu, GetLineTransform çağrılarını da zorlayacaktır.

+0

Bu etkinlikleri yakalamak için bir sınıfı nasıl yerleştireceğimi nasıl anlatabilirim? MEF’de yeniyim, bu yüzden burada yapılması gerekenler hakkında çok az bilgiye sahibim. – jwize

İlgili konular