2013-05-05 52 views
0

我正在用XAML和C#編寫商店應用程序。我想使用Border和ViewBox。我有邊框樣式,所以我不必多次設置屬性。我將BorderThickness設置爲2,並將顏色設置爲白色,但這會在我的Viewbox中導致問題。視框和邊框

這是XAML:

<Viewbox Grid.Row="1" Stretch="Uniform"> 
    <Grid Width="600" Height="600"> 
    <Grid.Resources> 
     <Style TargetType="Border"> 
     <Setter Property="BorderBrush" Value="White" /> 
     <Setter Property="BorderThickness" Value="2" /> 
     </Style> 
     <Style TargetType="Grid"> 
     <Setter Property="VerticalAlignment" Value="Top" /> 
     <Setter Property="HorizontalAlignment" Value="Left" /> 
     <Setter Property="Width" Value="150" /> 
     <Setter Property="Height" Value="150" /> 
     </Style> 
    </Grid.Resources> 

    <StackPanel Orientation="Vertical"> 
     <StackPanel Orientation="Horizontal"> 
     <Grid> 
      <Border> 
      <Viewbox> 
       <TextBlock Text="T" /> 
      </Viewbox> 
      </Border> 
     </Grid> 

這樣做的結果是:

enter image description here

的問題是圍繞着字母 「T」 縮放邊框。

我不想刪除Grid.Resources中Border的上述樣式。我只找到一個解決方案至今...

  <Viewbox> 
       <Viewbox.Resources> 
       <Style TargetType="Border"> 
        <Setter Property="BorderBrush" Value="White" /> 
        <Setter Property="BorderThickness" Value="0" /> 
       </Style> 
       </Viewbox.Resources> 
       <TextBlock Text="T" /> 

...你會給出正確的結果:

enter image description here

,但我不希望把每個ViewBoxes後這些行,因爲會有很多。 我也嘗試過創建一個組件,這個默認的「資源」是零厚邊框,但是縮放比例不好。

所以我的問題是如何刪除該邊框?

回答

0

您對BorderThickness使用零值是正確的。可視化樹層次結構中可能還有另一個元素,它也包含導致這種情況的默認值。通過拖動上面正在運行的調試應用十字 http://blois.us/Snoop/

你可以利用這個檢查可視化樹:

我現在不能測試此權利,但我可以推薦這個工具給你。每當我偶然發現這樣的問題時,我發現查看哪些控件真正出現在運行時非常有用,因爲使用xaml知道這一切真的很難。希望你能找到它!

+0

該程序沒有適用於商店應用程序。 :( – 2013-05-07 10:30:27