我想根据当前选定的主题更改Windows Phone应用程序中边框的颜色。我写了以下内容,但不起作用。无论选择的主题如何,它都是白色的边框。使用C#Windows Phone 7.1更改Border.BorderBrush值
这是用于应用程序(contacts.xaml)的xaml代码。
[XAML代码]
<StackPanel x:Name="StackPost_Viewer">
<Border BorderBrush="White" BorderThickness="3" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="436" Tap="Show_ContactList_gsecs">
<TextBlock TextWrapping="Wrap" Text="General Secretaries Social and Cultural" FontSize="36" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Border BorderBrush="White" BorderThickness="3" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="436" Tap="Show_ContactList_publicity">
<TextBlock TextWrapping="Wrap" Text="Publicity" FontSize="36" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Border BorderBrush="White" BorderThickness="3" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="436" Tap="Show_ContactList_events">
<TextBlock TextWrapping="Wrap" Text="Events" FontSize="36" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Border BorderBrush="White" BorderThickness="3" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="436" Tap="Show_ContactList_spons">
<TextBlock TextWrapping="Wrap" Text="Marketing and Sponsorship" FontSize="36" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Border BorderBrush="White" BorderThickness="3" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="436" Tap="Show_ContactList_finance">
<TextBlock TextWrapping="Wrap" Text="Finance" FontSize="36" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</StackPanel>
相应的C#代码(contacts.xaml.cs)
[C#代码]
public contacts()
{
InitializeComponent();
if (!isDarkTheme())
{
StackPanel main_stack = StackContact_Viewer;
var borders = main_stack.Children.OfType<Border>();
foreach (Border each in borders)
{
each.BorderBrush = new SolidColorBrush(Colors.Black);
}
}
else
{
StackPanel main_stack = StackContact_Viewer;
var borders = main_stack.Children.OfType<Border>();
foreach (var each in borders)
{
each.BorderBrush = new SolidColorBrush(Colors.White);
}
}
}
private bool isDarkTheme()
{
return Visibility.Visible == (Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
}
其实我需要的光的主题,反之亦然反向黑色边框。所以PhoneBackgroundBrush在这里没有任何帮助。告诉我一些其他的方法。 – bytestorm
哦,顺便说一句PhoneForegroundBrush做的工作,感谢您的想法@Kanishk – bytestorm