Skip to content

Commit 5bf2c8c

Browse files
committed
Improve UI
1 parent caf5af2 commit 5bf2c8c

File tree

9 files changed

+148
-62
lines changed

9 files changed

+148
-62
lines changed
9.15 KB
Loading

dev/Helpers/AlAnvarSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ public class AlAnvarSettings : JsonSettings, IVersionable
2424
public virtual bool IsAutoDownloadSound { get; set; } = true;
2525
public virtual string AudiosPath { get; set; } = Constants.AudiosPath;
2626
public virtual NavigationViewPaneDisplayMode PaneDisplayMode { get; set; } = NavigationViewPaneDisplayMode.Top;
27+
public virtual TextAlignment TextAlignment { get; set; } = TextAlignment.Center;
2728
}

dev/Views/MainPage.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,5 +152,7 @@ private void PaneDisplayModeButton_Click(object sender, RoutedEventArgs e)
152152
NavView.PaneDisplayMode = NavigationViewPaneDisplayMode.Auto;
153153
break;
154154
}
155+
156+
Settings.PaneDisplayMode = NavView.PaneDisplayMode;
155157
}
156158
}

dev/Views/QuranItemUC.xaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<UserControl x:Class="AlAnvar.Views.QuranItemUC"
3+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
6+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
7+
xmlns:settings="using:AlAnvar.Helpers"
8+
mc:Ignorable="d">
9+
<Grid>
10+
<Grid.ColumnDefinitions>
11+
<ColumnDefinition />
12+
<ColumnDefinition Width="auto" />
13+
</Grid.ColumnDefinitions>
14+
<Grid.RowDefinitions>
15+
<RowDefinition />
16+
<RowDefinition />
17+
</Grid.RowDefinitions>
18+
<TextBlock x:Name="TxtAyat"
19+
Padding="5,10,5,5"
20+
FontFamily="{x:Bind ViewModel.AyatFontFamily, Mode=OneWay}"
21+
FontSize="{x:Bind ViewModel.AyatFontSize, Mode=OneWay}"
22+
Loaded="TextBlock_Loaded"
23+
Tag="Ayat"
24+
Text="{x:Bind AyahText, Mode=OneWay}"
25+
TextAlignment="{x:Bind settings:AlAnvarHelper.Settings.TextAlignment, Mode=OneWay}"
26+
TextWrapping="Wrap"
27+
Visibility="{x:Bind ViewModel.IsOriginalTextActive, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
28+
<TextBlock x:Name="TxtTranslation"
29+
Grid.Row="1"
30+
Padding="5,0,5,5"
31+
FontFamily="{x:Bind ViewModel.TranslationFontFamily, Mode=OneWay}"
32+
FontSize="{x:Bind ViewModel.TranslationFontSize, Mode=OneWay}"
33+
Loaded="TextBlock_Loaded"
34+
Tag="Translation"
35+
Text="{x:Bind TranslationText, Mode=OneWay}"
36+
TextAlignment="{x:Bind settings:AlAnvarHelper.Settings.TextAlignment, Mode=OneWay}"
37+
TextWrapping="Wrap"
38+
Visibility="{x:Bind ViewModel.IsTranslationActive, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
39+
<TextBlock Grid.RowSpan="2"
40+
Grid.Column="1"
41+
Padding="5,10,5,5"
42+
FontFamily="{x:Bind ViewModel.AyatNumberFontFamily, Mode=OneWay}"
43+
FontSize="{x:Bind ViewModel.AyatNumberFontSize, Mode=OneWay}"
44+
FontWeight="Bold"
45+
Loaded="TextBlock_Loaded"
46+
Tag="AyatNumber"
47+
Text="{x:Bind AyaDetail, Mode=OneWay}" />
48+
</Grid>
49+
</UserControl>

dev/Views/QuranItemUC.xaml.cs

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
namespace AlAnvar.Views;
2+
public sealed partial class QuranItemUC : UserControl
3+
{
4+
public QuranViewModel ViewModel
5+
{
6+
get { return (QuranViewModel) GetValue(ViewModelProperty); }
7+
set { SetValue(ViewModelProperty, value); }
8+
}
9+
10+
public static readonly DependencyProperty ViewModelProperty =
11+
DependencyProperty.Register("ViewModel", typeof(QuranViewModel), typeof(QuranItemUC), new PropertyMetadata(null));
12+
13+
public string AyahText
14+
{
15+
get { return (string) GetValue(AyahTextProperty); }
16+
set { SetValue(AyahTextProperty, value); }
17+
}
18+
19+
public static readonly DependencyProperty AyahTextProperty =
20+
DependencyProperty.Register("AyahText", typeof(string), typeof(QuranItemUC), new PropertyMetadata(default(string)));
21+
22+
public string TranslationText
23+
{
24+
get { return (string) GetValue(TranslationTextProperty); }
25+
set { SetValue(TranslationTextProperty, value); }
26+
}
27+
28+
public static readonly DependencyProperty TranslationTextProperty =
29+
DependencyProperty.Register("TranslationText", typeof(string), typeof(QuranItemUC), new PropertyMetadata(default(string)));
30+
31+
public string AyaDetail
32+
{
33+
get { return (string) GetValue(AyaDetailProperty); }
34+
set { SetValue(AyaDetailProperty, value); }
35+
}
36+
37+
public static readonly DependencyProperty AyaDetailProperty =
38+
DependencyProperty.Register("AyaDetail", typeof(string), typeof(QuranItemUC), new PropertyMetadata(default(string)));
39+
40+
public static QuranItemUC Instance { get; set; }
41+
public QuranItemUC()
42+
{
43+
this.InitializeComponent();
44+
Instance = this;
45+
46+
if (QuranTabViewItem.Instance != null)
47+
{
48+
ViewModel = QuranTabViewItem.Instance.viewModel;
49+
}
50+
}
51+
52+
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
53+
{
54+
if (ViewModel == null)
55+
{
56+
return;
57+
}
58+
var textblock = sender as TextBlock;
59+
switch (textblock?.Tag?.ToString())
60+
{
61+
case "Ayat":
62+
if (Settings.AyatForeground != null)
63+
{
64+
textblock.Foreground = ViewModel.AyatForeground;
65+
}
66+
break;
67+
case "AyatNumber":
68+
if (Settings.AyatNumberForeground != null)
69+
{
70+
textblock.Foreground = ViewModel.AyatNumberForeground;
71+
}
72+
break;
73+
case "Translation":
74+
if (Settings.TranslationForeground != null)
75+
{
76+
textblock.Foreground = ViewModel.TranslationForeground;
77+
}
78+
break;
79+
}
80+
}
81+
}

dev/Views/QuranPage.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
xmlns:tables="using:AlAnvar.Database.Tables"
1212
xmlns:wuc="using:WinUICommunity"
1313
FontFamily="{ThemeResource ContentControlThemeFontFamily}"
14+
NavigationCacheMode="Required"
1415
mc:Ignorable="d">
1516
<i:Interaction.Behaviors>
1617
<ic:EventTriggerBehavior EventName="Loaded">

dev/Views/QuranTabViewItem.xaml

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
66
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
77
xmlns:table="using:AlAnvar.Database.Tables"
8+
xmlns:views="using:AlAnvar.Views"
89
x:Name="tabViewItem"
910
mc:Ignorable="d">
1011
<TabViewItem.IconSource>
@@ -14,42 +15,9 @@
1415
<TabViewItem.Resources>
1516
<DataTemplate x:Name="QuranItemTemplate"
1617
x:DataType="table:QuranItem">
17-
<Grid>
18-
<Grid.ColumnDefinitions>
19-
<ColumnDefinition />
20-
<ColumnDefinition Width="auto" />
21-
</Grid.ColumnDefinitions>
22-
<Grid.RowDefinitions>
23-
<RowDefinition />
24-
<RowDefinition />
25-
</Grid.RowDefinitions>
26-
<TextBlock Padding="5,10,5,5"
27-
FontFamily="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.AyatFontFamily}"
28-
FontSize="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.AyatFontSize}"
29-
Loaded="TextBlock_Loaded"
30-
Tag="Ayat"
31-
Text="{x:Bind AyahText}"
32-
TextWrapping="Wrap"
33-
Visibility="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.IsOriginalTextActive, Converter={StaticResource BoolToVisibilityConverter}}" />
34-
<TextBlock Grid.Row="1"
35-
Padding="5,0,5,5"
36-
FontFamily="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.TranslationFontFamily}"
37-
FontSize="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.TranslationFontSize}"
38-
Loaded="TextBlock_Loaded"
39-
Tag="Translation"
40-
Text="{x:Bind TranslationText}"
41-
TextWrapping="Wrap"
42-
Visibility="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.IsTranslationActive, Converter={StaticResource BoolToVisibilityConverter}}" />
43-
<TextBlock Grid.RowSpan="2"
44-
Grid.Column="1"
45-
Padding="5,10,5,5"
46-
FontFamily="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.AyatNumberFontFamily}"
47-
FontSize="{Binding ElementName=tabViewItem, Path=DataContext.viewModel.AyatNumberFontSize}"
48-
FontWeight="Bold"
49-
Loaded="TextBlock_Loaded"
50-
Tag="AyatNumber"
51-
Text="{x:Bind AyaDetail}" />
52-
</Grid>
18+
<views:QuranItemUC AyaDetail="{x:Bind AyaDetail}"
19+
AyahText="{x:Bind AyahText}"
20+
TranslationText="{x:Bind TranslationText}" />
5321
</DataTemplate>
5422
</TabViewItem.Resources>
5523
<Grid>

dev/Views/QuranTabViewItem.xaml.cs

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,11 @@ public ChapterProperty Chapter
5858

5959
#endregion
6060

61+
public static QuranTabViewItem Instance { get; private set; }
6162
public QuranTabViewItem()
6263
{
6364
this.InitializeComponent();
65+
Instance = this;
6466
DataContext = this;
6567
viewModel = QuranPage.Instance.ViewModel;
6668
mediaPlayerElement.TransportControls.IsCompact = true;
@@ -623,30 +625,4 @@ private void CmbTranslation_SelectionChanged(object sender, SelectionChangedEven
623625
ScrollIntoView(itemIndex);
624626
}
625627
}
626-
627-
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
628-
{
629-
var textblock = sender as TextBlock;
630-
switch (textblock?.Tag?.ToString())
631-
{
632-
case "Ayat":
633-
if (Settings.AyatForeground != null)
634-
{
635-
textblock.Foreground = viewModel.AyatForeground;
636-
}
637-
break;
638-
case "AyatNumber":
639-
if (Settings.AyatNumberForeground != null)
640-
{
641-
textblock.Foreground = viewModel.AyatNumberForeground;
642-
}
643-
break;
644-
case "Translation":
645-
if (Settings.TranslationForeground != null)
646-
{
647-
textblock.Foreground = viewModel.TranslationForeground;
648-
}
649-
break;
650-
}
651-
}
652628
}

dev/Views/Settings/GeneralSettingPage.xaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@
4040
</i:Interaction.Behaviors>
4141
</ComboBox>
4242
</wuc:SettingsCard>
43+
<wuc:SettingsCard Description="حالت نمایش متن و ترجمه قرآن را مشخص کنید"
44+
Header="حالت نمایش متن"
45+
HeaderIcon="{wuc:BitmapIcon Source=Assets/Fluent/textAlignment.png}">
46+
<ComboBox xmlns:enums="using:Microsoft.UI.Xaml"
47+
xmlns:ui="using:CommunityToolkit.WinUI"
48+
ItemsSource="{ui:EnumValues Type=enums:TextAlignment}"
49+
SelectedItem="{x:Bind settings:AlAnvarHelper.Settings.TextAlignment, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
50+
</wuc:SettingsCard>
4351
</StackPanel>
4452
</ScrollView>
4553
</Page>

0 commit comments

Comments
 (0)