2011-01-31 25 views
0

Windows XPでこのコードを実行すると、ラジオボタンの周りに四角形が表示されます。ウィンドウズ7ではありません。 コメントを削除しても、これはXPでもうまくいきます。XPとWindows 7の違い#

なぜですか?

RadioButton rb1 = new RadioButton(); 
rb1.GroupName = kvp.Key.ToString(); 
rb1.Name = "Keep"; 
rb1.Margin = new Thickness(30, 5, 0, 0); 
//rb1.HorizontalAlignment = HorizontalAlignment.Left; 
//rb1.VerticalAlignment = VerticalAlignment.Top; 
rb1.IsChecked = true; 
rb1.Checked += OnRadioButton_Checked; 
Grid.SetRow(rb1, grid.RowDefinitions.Count - 1); 
Grid.SetColumn(rb1, 1); 
grid.Children.Add(rb1); 
+3

あなたは、さまざまな効果のスクリーンショットを投稿することができます。 – ChrisF

+0

あなたはこの問題を解決したことがありますか?私は、http://stackoverflow.com/questions/8354423/wpf-margin-renders-diffrently-on-windows-xp-7で同じですが、100%は確信していないと思います。 。 – Peter

+0

私が以下に書いたので、私はこの問題を解決しませんでした。これは、条件付きコンパイル指令(#if)によって解決できます。 –

答えて

8

Windows 7とWindows XPでは、デフォルトのテーマが異なるため、同じXAMLがわずかに異なる方法でレンダリングされます。 VistaとWindows 7はAeroを使用し、XPはLunaを使用します(Windows Server 2003はClassicを使用します - Windows Server 2008も同様です)。

これをオーバーライドして、表示されている違いが原因であるかどうかを確認できます。

http://arbel.net/blog/archive/2006/11/03/Forcing-WPF-to-use-a-specific-Windows-theme.aspx

http://msdn.microsoft.com/en-us/library/aa358533(v=VS.90).aspx

+0

問題を解決できませんでした。スタイルをちょっと変えましたが、まだ違いがあります。 –

関連する問題