使用C#Windows Phone 7.1更改Border.BorderBrush值

使用C#Windows Phone 7.1更改Border.BorderBrush值,c#,visual-studio-2010,xaml,windows-phone,C#,Visual Studio 2010,Xaml,Windows Phone,我想根据当前选择的主题更改windows phone应用程序中边框的颜色。我写了以下内容,但它不起作用。无论选择的主题是什么,它都始终是白色边框 以下是应用程序使用的xaml代码(contacts.xaml) [XAML代码] <StackPanel x:Name="StackPost_Viewer"> <Border BorderBrush="White" BorderThickness="3" HorizontalAlignment="

我想根据当前选择的主题更改windows phone应用程序中边框的颜色。我写了以下内容,但它不起作用。无论选择的主题是什么,它都始终是白色边框

以下是应用程序使用的xaml代码(contacts.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#代码]

公共联系人()
{
初始化组件();
如果(!isDarkTheme())
{
StackPanel main_stack=StackContact_查看器;
var borders=main_stack.Children.OfType();
foreach(边框中的每个边框)
{
each.BorderBrush=新的SolidColorBrush(Colors.Black);
}
}
其他的
{
StackPanel main_stack=StackContact_查看器;
var borders=main_stack.Children.OfType();
foreach(边界中的每个变量)
{
each.BorderBrush=新的SolidColorBrush(Colors.White);
}
}
}
私人bool isdark主题()
{
返回Visibility.Visibility==(Visibility)Application.Current.Resources[“phonedarkthemeviability”];
}

如果您只希望边框颜色为黑色表示深色主题,白色表示浅色主题,则只需将边框元素定义为

 <Border BorderBrush="{StaticResource PhoneBackgroundBrush}" ...
试试这个

XAML


事实上,我需要的反向光主题黑色边框,反之亦然。所以PhoneBackgroundBrush在这里没有帮助。告诉我其他的方法。哦,顺便说一句,PhoneForegroundBrush做了这项工作,谢谢你的主意@Kanishk
 <Border BorderBrush="{StaticResource PhoneBackgroundBrush}" ...
<Border  Name="border" BorderThickness="3">
     <TextBlock  Text="General Secretaries Social and Cultural" />
</Border>
border.BorderBrush = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);