Làm cách nào để biết chủ đề được chọn trong cài đặt (sáng hoặc tối)? Tôi muốn sử dụng một tuyên bố có điều kiện nhưchủ đề trong cửa sổ điện thoại (sáng hoặc tối) bằng cách sử dụng C#
if (darkTheme) {..}
else {..}
Làm cách nào để biết chủ đề được chọn trong cài đặt (sáng hoặc tối)? Tôi muốn sử dụng một tuyên bố có điều kiện nhưchủ đề trong cửa sổ điện thoại (sáng hoặc tối) bằng cách sử dụng C#
if (darkTheme) {..}
else {..}
if((Visibility)App.Current.Resources["PhoneDarkThemeVisibility"])
...
else
...
// Detecting the current theme.
private static Color lightThemeBackground = Color.FromArgb(255, 255, 255, 255);
private static Color darkThemeBackground = Color.FromArgb(255, 0, 0, 0);
rivate static SolidColorBrush backgroundBrush;
internal static AppTheme CurrentTheme
{
get
{
if (backgroundBrush == null)
backgroundBrush = Application.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush;
if (backgroundBrush.Color == lightThemeBackground)
return AppTheme.Light;
else if (backgroundBrush.Color == darkThemeBackground)
return AppTheme.Dark;
return AppTheme.Dark;
}
}
BONUS: Cài đặt ThemeManager bởi Jeff Wilcox và chuyển đổi giữa ánh sáng và chủ đề tối trong ứng dụng của bạn chỉ với một dòng mã!
Bạn muốn tìm câu trả lời của bạn trong official MSDN page cho Theme trên Windows Phone.
Trong phần "Xác định Theme nền" mà chỉ ra:
// Determine the visibility of the dark background.
Visibility darkBackgroundVisibility =
(Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
// Write the theme background value.
if (darkBackgroundVisibility == Visibility.Visible)
{
textBlock1.Text = "background = dark";
}
else
{
textBlock1.Text = "background = light";
}
Ngoài ra, trong trang này, bạn đã phần nội dung về "màu giọng chủ đề". Để khôi phục hai màu chính do người dùng xác định (màu nền và màu nhấn).
tôi tìm cách tiếp cận đơn giản nhất để xác định chủ đề là sử dụng:
public bool darkTheme = ((Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"] == Visibility.Visible);
là darkTheme là đúng thì các chủ đề được lựa chọn là đen, và sai đối với ánh sáng.
Sau đó, trong bất cứ thủ tục chỉ cần sử dụng một tuyên bố đơn giản if
, chẳng hạn như:
if (darkTheme == true)
{
//Do some stuff related to dark theme
}
else
{
//Do some stuff related to light theme
}
tại sao không chỉ làm nếu (darkTheme)? –
Bạn cũng có thể làm việc. – Newbie
Đúng, một trong hai công việc, nhưng một là cách thuận làm điều đó và khác là cách Newbies làm điều đó lol. –
@YaroslavShabanov nếu điều này đã trả lời câu hỏi của bạn xin vui lòng kiểm tra dấu. –