2008-11-06 58 views
1

我在WPF中有一個網格。網格有一個透明的背景(必要),每個單元可能有不同的彩色固體背景,或者可能沒有背景。當我在這些單元格中放置任意內容時,當兩個相鄰的單元格都具有彩色背景(相同或不同顏色,無關緊要)時,通常(並且不可預知)將它們分開的薄透明線條允許您通過網格在那一行。WPF:消除網格單元格之間的透明度

有誰知道這可能會如何解決?

編輯:意思是在我的問題中提到它,但我試過在任何地方嘗試啓用SnapsToDevicePixels,但無濟於事。

回答

1

沒有看到任何代碼我的猜測是,你需要網格中的元素SnapsToDevicePixels

+0

我也有這個相同的問題...如果這個作品...搖滾! – 2008-11-06 01:24:09

+0

想要在我的問題中提到它,但我試過在任何地方和任何地方嘗試啓用SnapsToDevicePixels,但無濟於事。 – 2008-11-06 01:48:48

1

這產生了同樣的問題,但它可能不完全相同。不過,如果我們能夠解決這個問題,它可能會提示您的問題。

<Grid Background="Transparent"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

     <Grid.RowDefinitions> 
      <RowDefinition Height="3*" /> 
      <RowDefinition Height="3*" /> 
      <RowDefinition Height="3*" /> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 

     <Label Grid.Column="0" Grid.Row="0" Background="PaleGoldenrod" /> 
     <Label Grid.Column="1" Grid.Row="0" Background="White" /> 
     <Label Grid.Column="2" Grid.Row="0" Background="PaleGoldenrod" /> 


     <Label Grid.Column="0" Grid.Row="1" Background="White" /> 
     <!-- This is in the significant cell --> 
     <Label Grid.Column="1" Grid.Row="1" x:Name="SizeChangeLabel" Background="PaleGoldenrod"> 
      Watch this cell 
     </Label> 
     <Label Grid.Column="2" Grid.Row="1" Background="White" /> 

     <Label Grid.Column="0" Grid.Row="2" Background="PaleGoldenrod" /> 
     <Label Grid.Column="1" Grid.Row="2" Background="White" /> 
     <Label Grid.Column="2" Grid.Row="2" Background="PaleGoldenrod" /> 


     <Button x:Name="ReduceContentSize" Grid.Row="3" Grid.Column="0" Click="ReduceContentSize_Click">Reduce</Button> 
     <Button x:Name="IncreaseContentSize" Grid.Row="3" Grid.Column="1" Click="IncreaseContentSize_Click">Increase</Button> 
     <TextBlock Grid.Row="3" Grid.Column="2" Foreground="White"> 
      The window is black 
     </TextBlock> 
</Grid> 

單擊事件調整標籤的MinWidth中心蜂窩小區。當你碰到它時,你會得到我認爲與你的問題相同的線。

private const double _sizeChangeAmount = 150; 

    private void IncreaseContentSize_Click(object sender, RoutedEventArgs e) 
    { 
     SizeChangeLabel.MinWidth = SizeChangeLabel.ActualWidth + _sizeChangeAmount; 
     SizeChangeLabel.MinHeight = SizeChangeLabel.ActualHeight + _sizeChangeAmount; 
    } 

    private void ReduceContentSize_Click(object sender, RoutedEventArgs e) 
    { 
     if (SizeChangeLabel.MinWidth > 150) 
      SizeChangeLabel.MinWidth = SizeChangeLabel.ActualWidth - _sizeChangeAmount; 

     if (SizeChangeLabel.MinHeight > 150) 
      SizeChangeLabel.MinHeight = SizeChangeLabel.ActualHeight - _sizeChangeAmount; 
    } 

這是一個合理的近似,可以幫助促成一個解決方案?