mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 14:13:30 -07:00
Fix #409 - Some content in Currency Converter not right-aligned properly in RtL
Fix #59 Currency symbol precedence is opposite of system setting in RTL languages
This commit is contained in:
parent
f6a6aae6e6
commit
bbd397a284
3 changed files with 19 additions and 17 deletions
|
@ -1,4 +1,4 @@
|
||||||
<UserControl x:Class="CalculatorApp.UnitConverter"
|
<UserControl x:Class="CalculatorApp.UnitConverter"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:automation="using:CalculatorApp.Common.Automation"
|
xmlns:automation="using:CalculatorApp.Common.Automation"
|
||||||
|
@ -492,9 +492,8 @@
|
||||||
<Grid x:Name="Value1Container"
|
<Grid x:Name="Value1Container"
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||||
Style="{ThemeResource ValueContainerStyle}"
|
Style="{ThemeResource ValueContainerStyle}"
|
||||||
FlowDirection="{x:Bind LayoutDirection}"
|
|
||||||
Visibility="{x:Bind Model.IsCurrencyLoadingVisible, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}">
|
Visibility="{x:Bind Model.IsCurrencyLoadingVisible, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
@ -517,7 +516,6 @@
|
||||||
ContextRequested="OnContextRequested"
|
ContextRequested="OnContextRequested"
|
||||||
DisplayValue="{x:Bind Model.Value1, Mode=OneWay}"
|
DisplayValue="{x:Bind Model.Value1, Mode=OneWay}"
|
||||||
ExpressionVisibility="Collapsed"
|
ExpressionVisibility="Collapsed"
|
||||||
FlowDirection="{x:Bind LayoutDirection}"
|
|
||||||
IsActive="{Binding Value1Active, Mode=TwoWay}"
|
IsActive="{Binding Value1Active, Mode=TwoWay}"
|
||||||
KeyDown="OnValueKeyDown"
|
KeyDown="OnValueKeyDown"
|
||||||
Selected="OnValueSelected"
|
Selected="OnValueSelected"
|
||||||
|
@ -527,6 +525,7 @@
|
||||||
<ComboBox x:Name="Units1"
|
<ComboBox x:Name="Units1"
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
|
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||||
Style="{ThemeResource ComboStyle}"
|
Style="{ThemeResource ComboStyle}"
|
||||||
AutomationProperties.AutomationId="Units1"
|
AutomationProperties.AutomationId="Units1"
|
||||||
AutomationProperties.Name="{x:Bind Model.Unit1AutomationName, Mode=OneWay}"
|
AutomationProperties.Name="{x:Bind Model.Unit1AutomationName, Mode=OneWay}"
|
||||||
|
@ -544,9 +543,8 @@
|
||||||
<Grid x:Name="Value2Container"
|
<Grid x:Name="Value2Container"
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||||
Style="{ThemeResource ValueContainerStyle}"
|
Style="{ThemeResource ValueContainerStyle}"
|
||||||
FlowDirection="{x:Bind LayoutDirection}"
|
|
||||||
Visibility="{x:Bind Model.IsCurrencyLoadingVisible, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}">
|
Visibility="{x:Bind Model.IsCurrencyLoadingVisible, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
@ -570,7 +568,6 @@
|
||||||
ContextRequested="OnContextRequested"
|
ContextRequested="OnContextRequested"
|
||||||
DisplayValue="{x:Bind Model.Value2, Mode=OneWay}"
|
DisplayValue="{x:Bind Model.Value2, Mode=OneWay}"
|
||||||
ExpressionVisibility="Collapsed"
|
ExpressionVisibility="Collapsed"
|
||||||
FlowDirection="{x:Bind LayoutDirection}"
|
|
||||||
IsActive="{Binding Value2Active, Mode=TwoWay}"
|
IsActive="{Binding Value2Active, Mode=TwoWay}"
|
||||||
KeyDown="OnValueKeyDown"
|
KeyDown="OnValueKeyDown"
|
||||||
Selected="OnValueSelected"
|
Selected="OnValueSelected"
|
||||||
|
@ -580,6 +577,7 @@
|
||||||
<ComboBox x:Name="Units2"
|
<ComboBox x:Name="Units2"
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
|
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||||
Style="{ThemeResource ComboStyle}"
|
Style="{ThemeResource ComboStyle}"
|
||||||
AutomationProperties.AutomationId="Units2"
|
AutomationProperties.AutomationId="Units2"
|
||||||
AutomationProperties.Name="{x:Bind Model.Unit2AutomationName, Mode=OneWay}"
|
AutomationProperties.Name="{x:Bind Model.Unit2AutomationName, Mode=OneWay}"
|
||||||
|
@ -598,7 +596,7 @@
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
MinHeight="48"
|
MinHeight="48"
|
||||||
Margin="12,0,6,0"
|
Margin="12,0,6,0"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
FlowDirection="{x:Bind LayoutDirection}"
|
FlowDirection="{x:Bind LayoutDirection}"
|
||||||
SizeChanged="SupplementaryResultsPanelInGrid_SizeChanged"
|
SizeChanged="SupplementaryResultsPanelInGrid_SizeChanged"
|
||||||
|
|
|
@ -46,22 +46,17 @@ using namespace Windows::UI::ViewManagement;
|
||||||
static const long long DURATION_500_MS = 10000 * 500;
|
static const long long DURATION_500_MS = 10000 * 500;
|
||||||
|
|
||||||
UnitConverter::UnitConverter() :
|
UnitConverter::UnitConverter() :
|
||||||
m_layoutDirection(::FlowDirection::LeftToRight),
|
|
||||||
m_meteredConnectionOverride(false),
|
m_meteredConnectionOverride(false),
|
||||||
m_isAnimationEnabled(false)
|
m_isAnimationEnabled(false)
|
||||||
{
|
{
|
||||||
|
m_layoutDirection = LocalizationService::GetInstance()->GetFlowDirection();
|
||||||
|
m_FlowDirectionHorizontalAlignment = m_layoutDirection == ::FlowDirection::RightToLeft ? ::HorizontalAlignment::Right : ::HorizontalAlignment::Left;
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
// adding ESC key shortcut binding to clear button
|
// adding ESC key shortcut binding to clear button
|
||||||
clearEntryButtonPos0->SetValue(Common::KeyboardShortcutManager::VirtualKeyProperty, Common::MyVirtualKey::Escape);
|
clearEntryButtonPos0->SetValue(Common::KeyboardShortcutManager::VirtualKeyProperty, Common::MyVirtualKey::Escape);
|
||||||
|
|
||||||
m_layoutDirection = LocalizationService::GetInstance()->GetFlowDirection();
|
|
||||||
if (m_layoutDirection == ::FlowDirection::RightToLeft)
|
|
||||||
{
|
|
||||||
Units1->HorizontalContentAlignment = ::HorizontalAlignment::Right;
|
|
||||||
Units2->HorizontalContentAlignment = ::HorizontalAlignment::Right;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Is currency symbol preference set to right side
|
// Is currency symbol preference set to right side
|
||||||
bool preferRight = LocalizationSettings::GetInstance().GetCurrencySymbolPrecedence() == 0;
|
bool preferRight = LocalizationSettings::GetInstance().GetCurrencySymbolPrecedence() == 0;
|
||||||
VisualStateManager::GoToState(this, preferRight ? "CurrencySymbolRightState" : "CurrencySymbolLeftState", false);
|
VisualStateManager::GoToState(this, preferRight ? "CurrencySymbolRightState" : "CurrencySymbolLeftState", false);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
// UnitConverter.xaml.h
|
// UnitConverter.xaml.h
|
||||||
|
@ -40,6 +40,14 @@ namespace CalculatorApp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property Windows::UI::Xaml::HorizontalAlignment FlowDirectionHorizontalAlignment
|
||||||
|
{
|
||||||
|
Windows::UI::Xaml::HorizontalAlignment get()
|
||||||
|
{
|
||||||
|
return m_FlowDirectionHorizontalAlignment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SetDefaultFocus();
|
void SetDefaultFocus();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -76,6 +84,7 @@ namespace CalculatorApp
|
||||||
void HideProgressRing();
|
void HideProgressRing();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Windows::UI::Xaml::HorizontalAlignment m_FlowDirectionHorizontalAlignment;
|
||||||
Windows::UI::Xaml::FlowDirection m_layoutDirection;
|
Windows::UI::Xaml::FlowDirection m_layoutDirection;
|
||||||
Windows::Foundation::EventRegistrationToken m_propertyChangedToken;
|
Windows::Foundation::EventRegistrationToken m_propertyChangedToken;
|
||||||
Windows::UI::Xaml::Controls::MenuFlyout^ m_resultsFlyout;
|
Windows::UI::Xaml::Controls::MenuFlyout^ m_resultsFlyout;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue