2012-11-20 82 views
0

我有在Windows中了borderThickness或BorderBrush財產8WPF性能無法在Windows正常工作8

在Win7,下面的代碼正確地概括editControl在5像素厚讀大綱的一個問題,但它不在Windows 8工作。我想知道是否有什麼東西在Windows 8中被棄用或不支持?我無法在Microsoft文檔中找到任何這樣的概念。

editControl.BorderThickness = new Thickness(5); 
editControl.BorderBrush = Brushes.Red; 

任何人都可以提供幫助嗎?

+0

如果你能提供更多關於「不工作」之後會發生什麼的信息會有所幫助 - 它是否會拋出運行時或編譯時異常?你看到什麼行爲? – McGarnagle

+1

我的意思是改變不反映邊界保持不變 – tuck

回答

0

我找到了一個使用Adorners的解決方法。

private class ErrorHighlightAdorner : Adorner 
    { 
     public ErrorHighlightAdorner(UIElement adornedElement) 
      : base(adornedElement) 
     { 
     } 

     protected override void OnRender(DrawingContext drawingContext) 
     { 
      Rect sourceRect = new Rect(); 
      FrameworkElement fe = AdornedElement as FrameworkElement; 
      if (fe != null) 
      { 
       sourceRect = new Rect(fe.RenderSize); 
      } 
      else 
      { 
       sourceRect = new Rect(AdornedElement.DesiredSize); 
      } 

      Pen renderPen = new Pen(new SolidColorBrush(Colors.Red), 2.0); 
      drawingContext.DrawRectangle(null, renderPen, sourceRect); 
     } 
    } 
相關問題