mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 06:13:14 -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:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:automation="using:CalculatorApp.Common.Automation"
|
||||
|
@ -492,9 +492,8 @@
|
|||
<Grid x:Name="Value1Container"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Left"
|
||||
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||
Style="{ThemeResource ValueContainerStyle}"
|
||||
FlowDirection="{x:Bind LayoutDirection}"
|
||||
Visibility="{x:Bind Model.IsCurrencyLoadingVisible, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
|
@ -517,7 +516,6 @@
|
|||
ContextRequested="OnContextRequested"
|
||||
DisplayValue="{x:Bind Model.Value1, Mode=OneWay}"
|
||||
ExpressionVisibility="Collapsed"
|
||||
FlowDirection="{x:Bind LayoutDirection}"
|
||||
IsActive="{Binding Value1Active, Mode=TwoWay}"
|
||||
KeyDown="OnValueKeyDown"
|
||||
Selected="OnValueSelected"
|
||||
|
@ -527,6 +525,7 @@
|
|||
<ComboBox x:Name="Units1"
|
||||
Grid.Row="2"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||
Style="{ThemeResource ComboStyle}"
|
||||
AutomationProperties.AutomationId="Units1"
|
||||
AutomationProperties.Name="{x:Bind Model.Unit1AutomationName, Mode=OneWay}"
|
||||
|
@ -544,9 +543,8 @@
|
|||
<Grid x:Name="Value2Container"
|
||||
Grid.Row="3"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Left"
|
||||
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||
Style="{ThemeResource ValueContainerStyle}"
|
||||
FlowDirection="{x:Bind LayoutDirection}"
|
||||
Visibility="{x:Bind Model.IsCurrencyLoadingVisible, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
|
@ -570,7 +568,6 @@
|
|||
ContextRequested="OnContextRequested"
|
||||
DisplayValue="{x:Bind Model.Value2, Mode=OneWay}"
|
||||
ExpressionVisibility="Collapsed"
|
||||
FlowDirection="{x:Bind LayoutDirection}"
|
||||
IsActive="{Binding Value2Active, Mode=TwoWay}"
|
||||
KeyDown="OnValueKeyDown"
|
||||
Selected="OnValueSelected"
|
||||
|
@ -580,6 +577,7 @@
|
|||
<ComboBox x:Name="Units2"
|
||||
Grid.Row="4"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||
Style="{ThemeResource ComboStyle}"
|
||||
AutomationProperties.AutomationId="Units2"
|
||||
AutomationProperties.Name="{x:Bind Model.Unit2AutomationName, Mode=OneWay}"
|
||||
|
@ -598,7 +596,7 @@
|
|||
Grid.Column="1"
|
||||
MinHeight="48"
|
||||
Margin="12,0,6,0"
|
||||
HorizontalAlignment="Left"
|
||||
HorizontalAlignment="{x:Bind FlowDirectionHorizontalAlignment}"
|
||||
VerticalAlignment="Top"
|
||||
FlowDirection="{x:Bind LayoutDirection}"
|
||||
SizeChanged="SupplementaryResultsPanelInGrid_SizeChanged"
|
||||
|
|
|
@ -46,22 +46,17 @@ using namespace Windows::UI::ViewManagement;
|
|||
static const long long DURATION_500_MS = 10000 * 500;
|
||||
|
||||
UnitConverter::UnitConverter() :
|
||||
m_layoutDirection(::FlowDirection::LeftToRight),
|
||||
m_meteredConnectionOverride(false),
|
||||
m_isAnimationEnabled(false)
|
||||
{
|
||||
m_layoutDirection = LocalizationService::GetInstance()->GetFlowDirection();
|
||||
m_FlowDirectionHorizontalAlignment = m_layoutDirection == ::FlowDirection::RightToLeft ? ::HorizontalAlignment::Right : ::HorizontalAlignment::Left;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
// adding ESC key shortcut binding to clear button
|
||||
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
|
||||
bool preferRight = LocalizationSettings::GetInstance().GetCurrencySymbolPrecedence() == 0;
|
||||
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.
|
||||
|
||||
// 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();
|
||||
|
||||
private:
|
||||
|
@ -76,6 +84,7 @@ namespace CalculatorApp
|
|||
void HideProgressRing();
|
||||
|
||||
private:
|
||||
Windows::UI::Xaml::HorizontalAlignment m_FlowDirectionHorizontalAlignment;
|
||||
Windows::UI::Xaml::FlowDirection m_layoutDirection;
|
||||
Windows::Foundation::EventRegistrationToken m_propertyChangedToken;
|
||||
Windows::UI::Xaml::Controls::MenuFlyout^ m_resultsFlyout;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue