mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-21 05:43:10 -07:00
Merge branch 'main' of https://github.com/microsoft/calculator into u/tilia/fi
This commit is contained in:
commit
7f4d4b88cc
80 changed files with 819 additions and 1084 deletions
|
@ -27,12 +27,14 @@ jobs:
|
|||
variables:
|
||||
skipComponentGovernanceDetection: true
|
||||
steps:
|
||||
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@2
|
||||
displayName: Send resources to Touchdown Build
|
||||
inputs:
|
||||
teamId: 86
|
||||
authId: bf6d44ca-3210-4cfa-833f-c79f164ea27b
|
||||
authKey: $(LocServiceKey)
|
||||
TDBuildServiceConnection: EE-TDBuild-Localization
|
||||
isPreview: false
|
||||
relativePathRoot: src/Calculator/Resources/en-US/
|
||||
resourceFilePath: '*.resw'
|
||||
|
|
|
@ -9,7 +9,7 @@ pr: none
|
|||
|
||||
variables:
|
||||
versionMajor: 11
|
||||
versionMinor: 2311
|
||||
versionMinor: 2404
|
||||
versionBuild: $[counter(format('{0}.{1}.*', variables['versionMajor'], variables['versionMinor']), 0)]
|
||||
versionPatch: 0
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ jobs:
|
|||
downloadDirectory: $(Build.SourcesDirectory)
|
||||
vstsFeed: WindowsInboxApps
|
||||
vstsFeedPackage: calculator-internals
|
||||
vstsPackageVersion: 0.0.105
|
||||
vstsPackageVersion: 0.0.106
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: Use NuGet 6.x
|
||||
|
|
|
@ -91,7 +91,7 @@ jobs:
|
|||
downloadDirectory: $(Build.SourcesDirectory)
|
||||
vstsFeed: WindowsInboxApps
|
||||
vstsFeedPackage: calculator-internals
|
||||
vstsPackageVersion: 0.0.105
|
||||
vstsPackageVersion: 0.0.106
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Generate MsixBundle mapping
|
||||
|
|
|
@ -28,6 +28,23 @@ jobs:
|
|||
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.msixbundle
|
||||
targetFolder: $(Pipeline.Workspace)\vpack\msixBundle
|
||||
|
||||
- task: UniversalPackages@0
|
||||
displayName: Download internals package
|
||||
inputs:
|
||||
command: download
|
||||
downloadDirectory: $(Build.SourcesDirectory)
|
||||
vstsFeed: WindowsInboxApps
|
||||
vstsFeedPackage: calculator-internals
|
||||
vstsPackageVersion: 0.0.106
|
||||
|
||||
- pwsh: |
|
||||
$configPath = "$(Build.SourcesDirectory)\Tools\Build\Signing\ESRP-auth.json"
|
||||
$auth = Get-Content -Raw $configPath | ConvertFrom-Json
|
||||
$sbomKeyCode = $auth._ExtraContext.SbomKeyCode
|
||||
echo $sbomKeyCode
|
||||
echo "##vso[task.setvariable variable=SbomKeyCode]$sbomKeyCode"
|
||||
displayName: Get SBOM Key Code
|
||||
|
||||
- task: PkgESVPack@12
|
||||
displayName: Create and push vpack for app
|
||||
env:
|
||||
|
@ -39,3 +56,8 @@ jobs:
|
|||
version: $(versionMajor).$(versionMinor).$(versionBuild)
|
||||
owner: paxeeapps
|
||||
provData: true
|
||||
taskLogVerbosity: Diagnostic
|
||||
coseUsageScenario: 'product'
|
||||
signSbom: true
|
||||
sbomKeyCode: $(SbomKeyCode)
|
||||
pathToEsrpAuthJson: '$(Build.SourcesDirectory)\Tools\Build\Signing\ESRP-auth.json'
|
||||
|
|
|
@ -50,34 +50,19 @@ static constexpr int GRAPHING_ID = 17;
|
|||
namespace // put the utils within this TU
|
||||
{
|
||||
Platform::String^ CurrentUserId;
|
||||
std::mutex GraphingModeCheckMutex;
|
||||
|
||||
bool IsGraphingModeEnabled()
|
||||
{
|
||||
static bool isChecked = false;
|
||||
static bool isEnabled = false;
|
||||
|
||||
std::scoped_lock<std::mutex> lock(GraphingModeCheckMutex);
|
||||
if (isChecked)
|
||||
{
|
||||
return isEnabled;
|
||||
}
|
||||
else
|
||||
static auto enabled = []
|
||||
{
|
||||
auto user = User::GetFromId(CurrentUserId);
|
||||
if (user == nullptr)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
auto namedPolicyData = NamedPolicy::GetPolicyFromPathForUser(
|
||||
user,
|
||||
L"Education",
|
||||
L"AllowGraphingCalculator");
|
||||
isEnabled = namedPolicyData->GetBoolean();
|
||||
isChecked = true;
|
||||
return isEnabled;
|
||||
}
|
||||
return NamedPolicy::GetPolicyFromPathForUser(user, L"Education", L"AllowGraphingCalculator")->GetBoolean();
|
||||
}();
|
||||
return enabled;
|
||||
}
|
||||
|
||||
// The order of items in this list determines the order of items in the menu.
|
||||
|
@ -318,7 +303,6 @@ NavCategoryGroup::NavCategoryGroup(const NavCategoryGroupInitializer& groupIniti
|
|||
|
||||
void NavCategoryStates::SetCurrentUser(Platform::String^ userId)
|
||||
{
|
||||
std::scoped_lock<std::mutex> lock(GraphingModeCheckMutex);
|
||||
CurrentUserId = userId;
|
||||
}
|
||||
|
||||
|
@ -518,13 +502,6 @@ bool NavCategoryStates::IsValidViewMode(ViewMode mode)
|
|||
|
||||
bool NavCategoryStates::IsViewModeEnabled(ViewMode mode)
|
||||
{
|
||||
if (mode != ViewMode::Graphing)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return IsGraphingModeEnabled();
|
||||
}
|
||||
return mode != ViewMode::Graphing ? true : IsGraphingModeEnabled();
|
||||
}
|
||||
|
||||
|
|
|
@ -958,7 +958,7 @@
|
|||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AppControlBackgroundTertiaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AppControlForegroundSecondaryBrush}"/>
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorSecondaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="BorderBrush">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ToggleButtonBorderBrush}"/>
|
||||
|
|
|
@ -6,37 +6,24 @@
|
|||
// Declaration of the App class.
|
||||
//
|
||||
|
||||
using CalculatorApp.ViewModel.Common;
|
||||
using CalculatorApp.ViewModel.Common.Automation;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.ApplicationModel.Core;
|
||||
using Windows.Foundation;
|
||||
using Windows.Storage;
|
||||
using Windows.UI.Core;
|
||||
using Windows.UI.StartScreen;
|
||||
using Windows.UI.ViewManagement;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
|
||||
using CalculatorApp.Utils;
|
||||
using CalculatorApp.ViewModel.Common;
|
||||
using CalculatorApp.ViewModel.Common.Automation;
|
||||
|
||||
namespace CalculatorApp
|
||||
{
|
||||
namespace ApplicationResourceKeys
|
||||
{
|
||||
public static class Globals
|
||||
{
|
||||
public static readonly string AppMinWindowHeight = "AppMinWindowHeight";
|
||||
public static readonly string AppMinWindowWidth = "AppMinWindowWidth";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides application-specific behavior to supplement the default Application class.
|
||||
/// </summary>
|
||||
|
@ -49,17 +36,12 @@ namespace CalculatorApp
|
|||
public App()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
m_preLaunched = false;
|
||||
|
||||
RegisterDependencyProperties();
|
||||
NarratorNotifier.RegisterDependencyProperties();
|
||||
|
||||
// TODO: MSFT 14645325: Set this directly from XAML.
|
||||
// Currently this is bugged so the property is only respected from code-behind.
|
||||
HighContrastAdjustment = ApplicationHighContrastAdjustment.None;
|
||||
|
||||
Suspending += OnSuspending;
|
||||
|
||||
#if DEBUG
|
||||
DebugSettings.IsBindingTracingEnabled = true;
|
||||
DebugSettings.BindingFailed += (sender, args) =>
|
||||
|
@ -81,18 +63,12 @@ namespace CalculatorApp
|
|||
/// <param name="e">Details about the launch request and process.</param>
|
||||
protected override void OnLaunched(LaunchActivatedEventArgs args)
|
||||
{
|
||||
if (args.PrelaunchActivated)
|
||||
{
|
||||
// If the app got pre-launch activated, then save that state in a flag
|
||||
m_preLaunched = true;
|
||||
}
|
||||
|
||||
NavCategoryStates.SetCurrentUser(args.User.NonRoamableId);
|
||||
|
||||
// It takes time to check GraphingMode at the 1st time. So, do it in a background thread
|
||||
// It takes time to check GraphingMode at the very first time. Warm up in a background thread.
|
||||
Task.Run(() => NavCategoryStates.IsViewModeEnabled(ViewMode.Graphing));
|
||||
|
||||
OnAppLaunch(args, args.Arguments);
|
||||
OnAppLaunch(args, args.Arguments, args.PrelaunchActivated);
|
||||
}
|
||||
|
||||
protected override void OnActivated(IActivatedEventArgs args)
|
||||
|
@ -101,76 +77,36 @@ namespace CalculatorApp
|
|||
{
|
||||
// We currently don't pass the uri as an argument,
|
||||
// and handle any protocol launch as a normal app launch.
|
||||
OnAppLaunch(args, null);
|
||||
OnAppLaunch(args, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
internal void RemoveWindow(WindowFrameService frameService)
|
||||
{
|
||||
// Shell does not allow killing the main window.
|
||||
if (m_mainViewId != frameService.GetViewId())
|
||||
{
|
||||
_ = HandleViewReleaseAndRemoveWindowFromMap(frameService);
|
||||
}
|
||||
}
|
||||
|
||||
internal void RemoveSecondaryWindow(WindowFrameService frameService)
|
||||
{
|
||||
// Shell does not allow killing the main window.
|
||||
if (m_mainViewId != frameService.GetViewId())
|
||||
{
|
||||
RemoveWindowFromMap(frameService.GetViewId());
|
||||
}
|
||||
}
|
||||
|
||||
private static Frame CreateFrame()
|
||||
{
|
||||
var frame = new Frame
|
||||
{
|
||||
FlowDirection = LocalizationService.GetInstance().GetFlowDirection()
|
||||
};
|
||||
return frame;
|
||||
}
|
||||
|
||||
private static void SetMinWindowSizeAndThemeAndActivate(Frame rootFrame, Size minWindowSize)
|
||||
{
|
||||
// SetPreferredMinSize should always be called before Window.Activate
|
||||
ApplicationView appView = ApplicationView.GetForCurrentView();
|
||||
appView.SetPreferredMinSize(minWindowSize);
|
||||
|
||||
// Place the frame in the current Window
|
||||
Window.Current.Content = rootFrame;
|
||||
CalculatorApp.Utils.ThemeHelper.InitializeAppTheme();
|
||||
Window.Current.Activate();
|
||||
}
|
||||
|
||||
private void OnAppLaunch(IActivatedEventArgs args, string argument)
|
||||
private void OnAppLaunch(IActivatedEventArgs args, string argument, bool isPreLaunch)
|
||||
{
|
||||
// Uncomment the following lines to display frame-rate and per-frame CPU usage info.
|
||||
//#if _DEBUG
|
||||
//#if DEBUG
|
||||
// if (IsDebuggerPresent())
|
||||
// {
|
||||
// DebugSettings->EnableFrameRateCounter = true;
|
||||
// DebugSettings.EnableFrameRateCounter = true;
|
||||
// }
|
||||
//#endif
|
||||
|
||||
args.SplashScreen.Dismissed += DismissedEventHandler;
|
||||
args.SplashScreen.Dismissed += async (_, __) => await SetupJumpListAsync();
|
||||
|
||||
var rootFrame = (Window.Current.Content as Frame);
|
||||
WeakReference weak = new WeakReference(this);
|
||||
var minWindowWidth = Convert.ToSingle(Resources["AppMinWindowWidth"]);
|
||||
var minWindowHeight = Convert.ToSingle(Resources["AppMinWindowHeight"]);
|
||||
var minWindowSize = SizeHelper.FromDimensions(minWindowWidth, minWindowHeight);
|
||||
var appView = ApplicationView.GetForCurrentView();
|
||||
var localSettings = ApplicationData.Current.LocalSettings;
|
||||
|
||||
float minWindowWidth = (float)((double)Resources[ApplicationResourceKeys.Globals.AppMinWindowWidth]);
|
||||
float minWindowHeight = (float)((double)Resources[ApplicationResourceKeys.Globals.AppMinWindowHeight]);
|
||||
Size minWindowSize = SizeHelper.FromDimensions(minWindowWidth, minWindowHeight);
|
||||
// SetPreferredMinSize should always be called before Window.Activate
|
||||
appView.SetPreferredMinSize(minWindowSize);
|
||||
|
||||
ApplicationView appView = ApplicationView.GetForCurrentView();
|
||||
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
|
||||
// For very first launch, set the size of the calc as size of the default standard mode
|
||||
if (!localSettings.Values.ContainsKey("VeryFirstLaunch"))
|
||||
{
|
||||
localSettings.Values["VeryFirstLaunch"] = false;
|
||||
appView.SetPreferredMinSize(minWindowSize);
|
||||
appView.TryResizeView(minWindowSize);
|
||||
appView.TryResizeView(minWindowSize); // the requested size must not be less than the min size.
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -179,190 +115,34 @@ namespace CalculatorApp
|
|||
|
||||
// Do not repeat app initialization when the Window already has content,
|
||||
// just ensure that the window is active
|
||||
var rootFrame = Window.Current.Content as Frame;
|
||||
if (rootFrame == null)
|
||||
{
|
||||
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) // PC Family
|
||||
rootFrame = new Frame
|
||||
{
|
||||
// Disable the system view activation policy during the first launch of the app
|
||||
// only for PC family devices and not for phone family devices
|
||||
try
|
||||
{
|
||||
ApplicationViewSwitcher.DisableSystemViewActivationPolicy();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Log that DisableSystemViewActionPolicy didn't work
|
||||
}
|
||||
}
|
||||
|
||||
// Create a Frame to act as the navigation context
|
||||
rootFrame = App.CreateFrame();
|
||||
|
||||
// When the navigation stack isn't restored navigate to the first page,
|
||||
// configuring the new page by passing required information as a navigation
|
||||
// parameter
|
||||
if (!rootFrame.Navigate(typeof(MainPage), argument))
|
||||
{
|
||||
// We couldn't navigate to the main page, kill the app so we have a good
|
||||
// stack to debug
|
||||
throw new SystemException();
|
||||
}
|
||||
|
||||
SetMinWindowSizeAndThemeAndActivate(rootFrame, minWindowSize);
|
||||
m_mainViewId = ApplicationView.GetForCurrentView().Id;
|
||||
AddWindowToMap(WindowFrameService.CreateNewWindowFrameService(rootFrame, false, weak));
|
||||
FlowDirection = LocalizationService.GetInstance().GetFlowDirection()
|
||||
};
|
||||
}
|
||||
else
|
||||
|
||||
if (isPreLaunch)
|
||||
{
|
||||
// For first launch, LaunchStart is logged in constructor, this is for subsequent launches.
|
||||
|
||||
// !Phone check is required because even in continuum mode user interaction mode is Mouse not Touch
|
||||
if ((UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse)
|
||||
&& (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")))
|
||||
{
|
||||
// If the pre-launch hasn't happened then allow for the new window/view creation
|
||||
if (!m_preLaunched)
|
||||
{
|
||||
var newCoreAppView = CoreApplication.CreateNewView();
|
||||
_ = newCoreAppView.Dispatcher.RunAsync(
|
||||
CoreDispatcherPriority.Normal, async () =>
|
||||
{
|
||||
if (weak.Target is App that)
|
||||
{
|
||||
var newRootFrame = App.CreateFrame();
|
||||
|
||||
SetMinWindowSizeAndThemeAndActivate(newRootFrame, minWindowSize);
|
||||
|
||||
if (!newRootFrame.Navigate(typeof(MainPage), argument))
|
||||
{
|
||||
// We couldn't navigate to the main page, kill the app so we have a good
|
||||
// stack to debug
|
||||
throw new SystemException();
|
||||
}
|
||||
|
||||
var frameService = WindowFrameService.CreateNewWindowFrameService(newRootFrame, true, weak);
|
||||
that.AddWindowToMap(frameService);
|
||||
|
||||
var dispatcher = CoreWindow.GetForCurrentThread().Dispatcher;
|
||||
|
||||
// CSHARP_MIGRATION_ANNOTATION:
|
||||
// class SafeFrameWindowCreation is being interpreted into a IDisposable class
|
||||
// in order to enhance its RAII capability that was written in C++/CX
|
||||
using (var safeFrameServiceCreation = new SafeFrameWindowCreation(frameService, that))
|
||||
{
|
||||
int newWindowId = ApplicationView.GetApplicationViewIdForWindow(CoreWindow.GetForCurrentThread());
|
||||
|
||||
ActivationViewSwitcher activationViewSwitcher = null;
|
||||
var activateEventArgs = (args as IViewSwitcherProvider);
|
||||
if (activateEventArgs != null)
|
||||
{
|
||||
activationViewSwitcher = activateEventArgs.ViewSwitcher;
|
||||
}
|
||||
|
||||
if (activationViewSwitcher != null)
|
||||
{
|
||||
_ = activationViewSwitcher.ShowAsStandaloneAsync(newWindowId, ViewSizePreference.Default);
|
||||
safeFrameServiceCreation.SetOperationSuccess(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
var activatedEventArgs = (args as IApplicationViewActivatedEventArgs);
|
||||
if ((activatedEventArgs != null) && (activatedEventArgs.CurrentlyShownApplicationViewId != 0))
|
||||
{
|
||||
// CSHARP_MIGRATION_ANNOTATION:
|
||||
// here we don't use ContinueWith() to interpret origin code because we would like to
|
||||
// pursue the design of class SafeFrameWindowCreate whichi was using RAII to ensure
|
||||
// some states get handled properly when its instance is being destructed.
|
||||
//
|
||||
// To achieve that, SafeFrameWindowCreate has been reinterpreted using IDisposable
|
||||
// pattern, which forces we use below way to keep async works being controlled within
|
||||
// a same code block.
|
||||
var viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(
|
||||
frameService.GetViewId(),
|
||||
ViewSizePreference.Default,
|
||||
activatedEventArgs.CurrentlyShownApplicationViewId,
|
||||
ViewSizePreference.Default);
|
||||
// SafeFrameServiceCreation is used to automatically remove the frame
|
||||
// from the list of frames if something goes bad.
|
||||
safeFrameServiceCreation.SetOperationSuccess(viewShown);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
ActivationViewSwitcher activationViewSwitcher = null;
|
||||
var activateEventArgs = (args as IViewSwitcherProvider);
|
||||
if (activateEventArgs != null)
|
||||
{
|
||||
activationViewSwitcher = activateEventArgs.ViewSwitcher;
|
||||
}
|
||||
|
||||
if (activationViewSwitcher != null)
|
||||
{
|
||||
_ = activationViewSwitcher.ShowAsStandaloneAsync(
|
||||
ApplicationView.GetApplicationViewIdForWindow(CoreWindow.GetForCurrentThread()), ViewSizePreference.Default);
|
||||
}
|
||||
else
|
||||
{
|
||||
TraceLogger.GetInstance().LogError(ViewMode.None, "App.OnAppLaunch", "Null_ActivationViewSwitcher");
|
||||
}
|
||||
}
|
||||
// Set the preLaunched flag to false
|
||||
m_preLaunched = false;
|
||||
}
|
||||
else // for touch devices
|
||||
{
|
||||
if (rootFrame.Content == null)
|
||||
{
|
||||
// When the navigation stack isn't restored navigate to the first page,
|
||||
// configuring the new page by passing required information as a navigation
|
||||
// parameter
|
||||
if (!rootFrame.Navigate(typeof(MainPage), argument))
|
||||
{
|
||||
// We couldn't navigate to the main page,
|
||||
// kill the app so we have a good stack to debug
|
||||
throw new SystemException();
|
||||
}
|
||||
}
|
||||
if (ApplicationView.GetForCurrentView().ViewMode != ApplicationViewMode.CompactOverlay)
|
||||
{
|
||||
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
|
||||
{
|
||||
// for tablet mode: since system view activation policy is disabled so do ShowAsStandaloneAsync if activationViewSwitcher exists in
|
||||
// activationArgs
|
||||
ActivationViewSwitcher activationViewSwitcher = null;
|
||||
var activateEventArgs = (args as IViewSwitcherProvider);
|
||||
if (activateEventArgs != null)
|
||||
{
|
||||
activationViewSwitcher = activateEventArgs.ViewSwitcher;
|
||||
}
|
||||
if (activationViewSwitcher != null)
|
||||
{
|
||||
var viewId = (args as IApplicationViewActivatedEventArgs).CurrentlyShownApplicationViewId;
|
||||
if (viewId != 0)
|
||||
{
|
||||
_ = activationViewSwitcher.ShowAsStandaloneAsync(viewId);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Ensure the current window is active
|
||||
Window.Current.Activate();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void DismissedEventHandler(SplashScreen sender, object e)
|
||||
{
|
||||
_ = SetupJumpList();
|
||||
}
|
||||
// When the navigation stack isn't restored navigate to the first page,
|
||||
// configuring the new page by passing required information as a navigation
|
||||
// parameter
|
||||
if (rootFrame.Content == null && !rootFrame.Navigate(typeof(MainPage), argument))
|
||||
{
|
||||
// We couldn't navigate to the main page, kill the app so we have a good
|
||||
// stack to debug
|
||||
throw new SystemException("6d430286-eb5d-4f8d-95d2-3d1059552968");
|
||||
}
|
||||
|
||||
private void RegisterDependencyProperties()
|
||||
{
|
||||
NarratorNotifier.RegisterDependencyProperties();
|
||||
// Place the frame in the current Window
|
||||
Window.Current.Content = rootFrame;
|
||||
ThemeHelper.InitializeAppTheme();
|
||||
Window.Current.Activate();
|
||||
}
|
||||
|
||||
private void OnSuspending(object sender, SuspendingEventArgs args)
|
||||
|
@ -370,43 +150,7 @@ namespace CalculatorApp
|
|||
TraceLogger.GetInstance().LogButtonUsage();
|
||||
}
|
||||
|
||||
private sealed class SafeFrameWindowCreation : IDisposable
|
||||
{
|
||||
public SafeFrameWindowCreation(WindowFrameService frameService, App parent)
|
||||
{
|
||||
m_frameService = frameService;
|
||||
m_frameOpenedInWindow = false;
|
||||
m_parent = parent;
|
||||
}
|
||||
|
||||
public void SetOperationSuccess(bool success)
|
||||
{
|
||||
m_frameOpenedInWindow = success;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (!m_frameOpenedInWindow)
|
||||
{
|
||||
// Close the window as the navigation to the window didn't succeed
|
||||
// and this is not visible to the user.
|
||||
m_parent.RemoveWindowFromMap(m_frameService.GetViewId());
|
||||
}
|
||||
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
~SafeFrameWindowCreation()
|
||||
{
|
||||
Dispose();
|
||||
}
|
||||
|
||||
private readonly WindowFrameService m_frameService;
|
||||
private bool m_frameOpenedInWindow;
|
||||
private readonly App m_parent;
|
||||
};
|
||||
|
||||
private async Task SetupJumpList()
|
||||
private async Task SetupJumpListAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -426,87 +170,19 @@ namespace CalculatorApp
|
|||
var item = JumpListItem.CreateWithArguments(((int)mode).ToString(), "ms-resource:///Resources/" + NavCategoryStates.GetNameResourceKey(mode));
|
||||
item.Description = "ms-resource:///Resources/" + NavCategoryStates.GetNameResourceKey(mode);
|
||||
item.Logo = new Uri("ms-appx:///Assets/" + mode + ".png");
|
||||
|
||||
jumpList.Items.Add(item);
|
||||
}
|
||||
|
||||
await jumpList.SaveAsync();
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
TraceLogger.GetInstance().LogError(ViewMode.None, nameof(SetupJumpListAsync), ex.ToString());
|
||||
#if DEBUG
|
||||
throw;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
private async Task HandleViewReleaseAndRemoveWindowFromMap(WindowFrameService frameService)
|
||||
{
|
||||
WeakReference weak = new WeakReference(this);
|
||||
|
||||
// Unregister the event handler of the Main Page
|
||||
var frame = (Window.Current.Content as Frame);
|
||||
var mainPage = (frame.Content as MainPage);
|
||||
|
||||
mainPage.UnregisterEventHandlers();
|
||||
|
||||
await frameService.HandleViewRelease();
|
||||
await Task.Run(() =>
|
||||
{
|
||||
var that = weak.Target as App;
|
||||
that.RemoveWindowFromMap(frameService.GetViewId());
|
||||
}).ConfigureAwait(false /* task_continuation_context::use_arbitrary() */);
|
||||
}
|
||||
|
||||
private void AddWindowToMap(WindowFrameService frameService)
|
||||
{
|
||||
m_windowsMapLock.EnterWriteLock();
|
||||
try
|
||||
{
|
||||
m_secondaryWindows[frameService.GetViewId()] = frameService;
|
||||
TraceLogger.GetInstance().UpdateWindowCount(Convert.ToUInt64(m_secondaryWindows.Count));
|
||||
}
|
||||
finally
|
||||
{
|
||||
m_windowsMapLock.ExitWriteLock();
|
||||
}
|
||||
}
|
||||
|
||||
private WindowFrameService GetWindowFromMap(int viewId)
|
||||
{
|
||||
m_windowsMapLock.EnterReadLock();
|
||||
try
|
||||
{
|
||||
if (m_secondaryWindows.TryGetValue(viewId, out var windowMapEntry))
|
||||
{
|
||||
return windowMapEntry;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
m_windowsMapLock.ExitReadLock();
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveWindowFromMap(int viewId)
|
||||
{
|
||||
m_windowsMapLock.EnterWriteLock();
|
||||
try
|
||||
{
|
||||
bool removed = m_secondaryWindows.Remove(viewId);
|
||||
Debug.Assert(removed != false, "Window does not exist in the list");
|
||||
}
|
||||
finally
|
||||
{
|
||||
m_windowsMapLock.ExitWriteLock();
|
||||
}
|
||||
}
|
||||
|
||||
private readonly ReaderWriterLockSlim m_windowsMapLock = new ReaderWriterLockSlim();
|
||||
private readonly Dictionary<int, WindowFrameService> m_secondaryWindows = new Dictionary<int, WindowFrameService>();
|
||||
private int m_mainViewId;
|
||||
private bool m_preLaunched;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -250,7 +250,6 @@
|
|||
<Compile Include="Views\UnitConverter.xaml.cs">
|
||||
<DependentUpon>UnitConverter.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WindowFrameService.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(UseReleaseAppxManifest)' == 'True'">
|
||||
<AppxManifest Include="Package.Release.appxmanifest">
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" IgnorableNamespaces="uap uap3 uap5 mp">
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
|
||||
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
|
||||
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
|
||||
xmlns:iot2="http://schemas.microsoft.com/appx/manifest/iot/windows10/2"
|
||||
IgnorableNamespaces="uap uap3 uap5 mp desktop4 iot2">
|
||||
<Identity Name="Microsoft.WindowsCalculator" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="10.1604.27012.0" />
|
||||
<mp:PhoneIdentity PhoneProductId="b58171c6-c70c-4266-a2e8-8f9c994f4456" PhonePublisherId="95d94207-0c7c-47ed-82db-d75c81153c35" />
|
||||
<Properties>
|
||||
|
@ -14,7 +21,11 @@
|
|||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
<Applications>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Calculator.App">
|
||||
<Application Id="App"
|
||||
Executable="$targetnametoken$.exe"
|
||||
EntryPoint="Calculator.App"
|
||||
desktop4:SupportsMultipleInstances="true"
|
||||
iot2:SupportsMultipleInstances="true">
|
||||
<uap:VisualElements DisplayName="ms-resource:AppName" Square150x150Logo="Assets\CalculatorMedTile.png" Square44x44Logo="Assets\CalculatorAppList.png" Description="ms-resource:AppDescription" BackgroundColor="#0078D4">
|
||||
<uap:DefaultTile ShortName="ms-resource:AppName" Square310x310Logo="Assets\CalculatorLargeTile.png" Wide310x150Logo="Assets\CalculatorWideTile.png" Square71x71Logo="Assets\CalculatorSmallTile.png">
|
||||
<uap:ShowNameOnTiles>
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" IgnorableNamespaces="uap uap3 uap5 mp">
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
|
||||
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
|
||||
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
|
||||
xmlns:iot2="http://schemas.microsoft.com/appx/manifest/iot/windows10/2"
|
||||
IgnorableNamespaces="uap uap3 uap5 mp desktop4 iot2">
|
||||
<Identity Name="Microsoft.WindowsCalculator.Dev" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="0.0.1.0" />
|
||||
<mp:PhoneIdentity PhoneProductId="b58171c6-c70c-4266-a2e8-8f9c994f4456" PhonePublisherId="95d94207-0c7c-47ed-82db-d75c81153c35" />
|
||||
<Properties>
|
||||
|
@ -14,7 +21,11 @@
|
|||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
<Applications>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Calculator.App">
|
||||
<Application Id="App"
|
||||
Executable="$targetnametoken$.exe"
|
||||
EntryPoint="Calculator.App"
|
||||
desktop4:SupportsMultipleInstances="true"
|
||||
iot2:SupportsMultipleInstances="true">
|
||||
<uap:VisualElements DisplayName="ms-resource:DevAppName" Square150x150Logo="Assets\CalculatorMedTile.png" Square44x44Logo="Assets\CalculatorAppList.png" Description="ms-resource:DevAppDescription" BackgroundColor="transparent">
|
||||
<uap:DefaultTile ShortName="ms-resource:DevAppName" Square310x310Logo="Assets\CalculatorLargeTile.png" Wide310x150Logo="Assets\CalculatorWideTile.png" Square71x71Logo="Assets\CalculatorSmallTile.png">
|
||||
<uap:ShowNameOnTiles>
|
||||
|
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Daar is nog geen geskiedenis nie</value>
|
||||
<value>Daar is nog geen geskiedenis nie.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Daar is niks in geheue gestoor nie</value>
|
||||
<value>Daar is niks in geheue gestoor nie.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Instellingsbladsy</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Maak die kontekskieslys oop vir beskikbare aksies</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>እስካሁን ምንም ታሪክ የለም</value>
|
||||
<value>እስካሁን ምንም ታሪክ የለም።</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>በማኅደረ ትውስታ ውስጥ የተቀመጠ ምንም ነገር የለም</value>
|
||||
<value>በማህደረ ትውስታ ውስጥ የተቀመጠ ምንም ነገር የለም።</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>የክንውን አውዶች ገጽ</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>ላሉት ድርጊቶች የአውድ ምናሌውን ይክፈቱ</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>لا توجد محفوظات بعد</value>
|
||||
<value>لا توجد محفوظات بعد.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>لا يوجد شيء محفوظ في الذاكرة</value>
|
||||
<value>لا يوجد شيء محفوظ في الذاكرة.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>صفحة الإعدادات</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>فتح قائمة السياق للإجراءات المتوفرة</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Hələlik tarixçə yoxdur</value>
|
||||
<value>Hələlik tarixçə yoxdur.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Yaddaşda heç nə saxlanmayıb</value>
|
||||
<value>Yaddaşda heç nə saxlanmayıb.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Parametrlər səhifəsi</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Mövcud fəaliyyətlər üçün kontekst menyunu açın</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Все още няма хронология</value>
|
||||
<value>Все още няма хронология.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>В паметта няма нищо записано</value>
|
||||
<value>В паметта не е записано нищо.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Страница с настройки</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Отваряне на контекстното меню за наличните действия</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Encara no hi ha historial</value>
|
||||
<value>Encara no hi ha historial.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>No hi ha res desat a la memòria</value>
|
||||
<value>No hi ha res desat a la memòria.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Pàgina de configuració</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Obriu el menú contextual per a les accions disponibles</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Zatím tu není žádná historie</value>
|
||||
<value>Zatím tu není žádná historie.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>V paměti není nic uložené</value>
|
||||
<value>V paměti není nic uložené.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Stránka Nastavení</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Otevřete místní nabídku a podívejte se na dostupné akce</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Der er ingen oversigt endnu</value>
|
||||
<value>Der er ingen historik endnu.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Der er ikke gemt noget i hukommelsen</value>
|
||||
<value>Der er ikke gemt noget i hukommelsen.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Siden Indstillinger</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Åbn genvejsmenuen for tilgængelige handlinger</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,7 +2346,7 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Es ist noch kein Verlauf vorhanden</value>
|
||||
<value>Es ist noch kein Verlauf vorhanden.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Seite „Einstellungen“</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Öffnen des Kontextmenüs für verfügbare Aktionen</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Δεν υπάρχει ιστορικό ακόμα</value>
|
||||
<value>Δεν υπάρχει ιστορικό ακόμα.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Δεν υπάρχει κάτι αποθηκευμένο στη μνήμη</value>
|
||||
<value>Δεν υπάρχει τίποτα αποθηκευμένο στη μνήμη.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Σελίδα ρυθμίσεων</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Άνοιγμα του μενού περιβάλλοντος για διαθέσιμες ενέργειες</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>There’s no history yet</value>
|
||||
<value>There’s no history yet.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>There’s nothing saved in your memory</value>
|
||||
<value>There’s nothing saved in memory.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Settings page</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Open the context menu for available actions</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2778,11 +2778,11 @@
|
|||
<comment>{Locked}The Octal button</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>There’s no history yet</value>
|
||||
<value>There’s no history yet.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>There’s nothing saved in memory</value>
|
||||
<value>There’s nothing saved in memory.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4750,4 +4750,8 @@
|
|||
<value>Settings page</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Open the context menu for available actions</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>No hay historial todavía</value>
|
||||
<value>No hay historial todavía.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>No hay nada guardado en la memoria</value>
|
||||
<value>No hay nada guardado en la memoria.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Página de configuración</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Abrir el menú contextual para ver las acciones disponibles</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Aún no hay historial</value>
|
||||
<value>No hay historial todavía.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>No hay nada guardado en la memoria</value>
|
||||
<value>No hay nada guardado en la memoria.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Página de configuración</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Abrir el menú contextual para ver las acciones disponibles</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Ajalugu pole veel</value>
|
||||
<value>Ajalugu pole veel.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Mällu pole midagi salvestatud</value>
|
||||
<value>Mällu pole midagi salvestatud.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Sätete leht</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Saadaolevate toimingute kontekstimenüü avamine.</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2347,11 +2347,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Ez dago historiarik oraindik</value>
|
||||
<value>Ez dago historiarik oraindik.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Memorian ez dago ezer</value>
|
||||
<value>Memorian ez dago ezer.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4179,4 +4179,8 @@
|
|||
<value>Ezarpenen orria</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Ireki laster-menua eskuragarri dauden ekintzak ikusteko</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>فعلاً هیچ تاریخچهای موجود نیست</value>
|
||||
<value>فعلاً هیچ تاریخچهای موجود نیست.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>هیچ موردی در حافظه ذخیره نشده است</value>
|
||||
<value>هیچ موردی در حافظه ذخیره نشده است.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>صفحه تنظیمات</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>باز کردن منوی زمینه برای عملکردهای موجود</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Historiaa ei vielä ole</value>
|
||||
<value>Historiaa ei vielä ole.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Muistiin ei ole tallennettu mitään</value>
|
||||
<value>Muistiin ei ole tallennettu mitään.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Asetussivu</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Avaa käytettävissä olevien toimintojen pikavalikko</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Wala pang kasaysayan</value>
|
||||
<value>Wala pang kasaysayan.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Walang naka-save sa memory</value>
|
||||
<value>Walang naka-save sa memory.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Pahina ng nga setting</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Buksan ang menu ng konteksto para sa mga available na pagkilos</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Aucun historique pour l'instant</value>
|
||||
<value>Il n’existe aucun historique pour l’instant.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Rien n'a été enregistré dans la mémoire</value>
|
||||
<value>La mémoire est vide.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Page Paramètres</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Ouvrir le menu contextuel pour les actions disponibles</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Aucun historique pour l'instant</value>
|
||||
<value>Il n’y a aucun historique pour l’instant.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>La mémoire est vide</value>
|
||||
<value>La mémoire est vide.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Page Paramètres</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Ouvrir le menu contextuel pour les actions disponibles</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Aínda non hai ningún historial</value>
|
||||
<value>Aínda non hai ningún historial.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Non hai nada gardado na memoria</value>
|
||||
<value>Non hai nada gardado na memoria.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Páxina de configuración</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Abrir o menú contexto para as accións dispoñibles</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>אין היסטוריה עדיין</value>
|
||||
<value>אין היסטוריה עדיין.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>דבר לא שמור בזיכרון</value>
|
||||
<value>אין שום דבר שנשמר בזיכרון.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>דף ההגדרות</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>פתח את התפריט תלוי ההקשר כדי להציג את הפעולות הזמינות</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>अभी तक कोई इतिहास नहीं है</value>
|
||||
<value>अभी तक कोई इतिहास नहीं है.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>मेमोरी में कुछ भी नहीं सहेजा गया है</value>
|
||||
<value>मेमोरी में कुछ भी नहीं सहेजा गया है.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>सेटिंग्स पृष्ठ</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>उपलब्ध क्रियाओं के लिए प्रसंग मेनू खोलें</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Još nema povijesti</value>
|
||||
<value>Još nema povijesti.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Ništa nije spremljeno u memoriju</value>
|
||||
<value>Ništa nije spremljeno u memoriju.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Stranica postavki</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Otvorite kontekstni izbornik za dostupne akcije</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Még nincsenek előzmények</value>
|
||||
<value>Még nincsenek előzmények.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Nincs semmi a memóriában.</value>
|
||||
<value>Semmi sincs a memóriába mentve.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Beállítások lap</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Az elérhető műveletek helyi menüjének megnyitása</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Belum ada riwayat</value>
|
||||
<value>Belum ada riwayat.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Tidak ada yang disimpan dalam memori</value>
|
||||
<value>Tidak ada yang disimpan dalam memori.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Halaman pengaturan</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Buka menu konteks untuk melihat tindakan yang tersedia</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Enginn ferill enn</value>
|
||||
<value>Enginn ferill enn.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Ekkert hefur verið vistað í minni</value>
|
||||
<value>Ekkert hefur verið vistað í minni.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Stillingarsíða</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Opnaðu flýtivalmyndina fyrir tiltækar aðgerðir</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Non è ancora presente la cronologia</value>
|
||||
<value>Non è ancora presente la cronologia.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Nessun elemento salvato in memoria</value>
|
||||
<value>Nessun elemento salvato in memoria.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Pagina Impostazioni</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Apri il menu di scelta rapida per le azioni disponibili</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>まだ履歴がありません</value>
|
||||
<value>まだ履歴がありません。</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>メモリに何も保存されていません</value>
|
||||
<value>メモリに何も保存されていません。</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>設定ページ</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>コンテキスト メニューを開いて使用可能なアクションを表示します</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -1430,11 +1430,11 @@
|
|||
<comment>An abbreviation for a measurement of speed (Mach is the speed of sound, Mach 2 is 2 times the speed of sound)</comment>
|
||||
</data>
|
||||
<data name="UnitAbbreviation_Megabit" xml:space="preserve">
|
||||
<value>Мбит</value>
|
||||
<value>Мбайт</value>
|
||||
<comment>An abbreviation for a measurement unit of data</comment>
|
||||
</data>
|
||||
<data name="UnitAbbreviation_Megabyte" xml:space="preserve">
|
||||
<value>Мбайт</value>
|
||||
<value>Mбайт</value>
|
||||
<comment>An abbreviation for a measurement unit of data</comment>
|
||||
</data>
|
||||
<data name="UnitAbbreviation_Meter" xml:space="preserve">
|
||||
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Әлі журнал жоқ</value>
|
||||
<value>Әлі журнал жоқ.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Жадта ешбір нәрсе сақталмаған</value>
|
||||
<value>Жадыда ешбір нәрсе сақталмаған.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Параметрлер беті</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Қолжетімді әрекеттер үшін қалқымалы мәзірді ашу</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>មិនមានប្រវត្តិនៅឡើយ</value>
|
||||
<value>មិនទាន់មានប្រវត្តិនៅឡើយទេ។</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>មិនមានអ្វីត្រូវបានរក្សាទុកក្នុងអង្គចងចាំទេ</value>
|
||||
<value>មិនមានអ្វីត្រូវបានរក្សាទុកក្នុងអង្គចងចាំទេ។</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>ទំព័រការកំណត់</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>បើកម៉ឺនុយបរិបទសម្រាប់សកម្មភាពដែលមាន</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>ಇನ್ನೂ ಯಾವುದೇ ಇತಿಹಾಸವಿಲ್ಲ</value>
|
||||
<value>ಇನ್ನೂ ಯಾವುದೇ ಇತಿಹಾಸವಿಲ್ಲ.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>ಸ್ಮರಣೆಯಲ್ಲಿ ಏನನ್ನೂ ಉಳಿಸಲಾಗಿಲ್ಲ</value>
|
||||
<value>ಸ್ಮರಣೆಯಲ್ಲಿ ಏನನ್ನೂ ಉಳಿಸಲಾಗಿಲ್ಲ.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>ಸೆಟ್ಟಿಂಗ್ಗಳ ಪುಟ</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>ಲಭ್ಯವಿರುವ ಕ್ರಿಯೆಗಳಿಗೆ ಸಂದರ್ಭ ಮೆನು ತೆರೆಯಿರಿ</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>아직 기록이 없음</value>
|
||||
<value>아직 기록이 없습니다.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>메모리에 저장된 내용이 없음</value>
|
||||
<value>메모리에 저장된 내용이 없습니다.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>설정 페이지</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>바로 가기 메뉴를 열어 사용 가능한 작업 보기</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>ຍັງບໍ່ມີປະຫວັດເທື່ອ</value>
|
||||
<value>ຍັງບໍ່ມີປະຫວັດເທື່ອ.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>ບໍ່ໄດ້ມີການບັນທຶກໃດໆໃນໜ່ວຍຄວາມຈຳ</value>
|
||||
<value>ບໍ່ໄດ້ມີການບັນທຶກໃດໆໃນໜ່ວຍຄວາມຈຳ.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>ຕັ້ງຄ່າໜ້າ</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>ເປີດລາຍການຄຳສັ່ງສໍາລັບການດໍາເນີນການທີ່ມີຢູ່</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Istorijos dar nėra</value>
|
||||
<value>Istorijos dar nėra.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Atmintyje nieko neišsaugota</value>
|
||||
<value>Atmintyje nieko neišsaugota.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Parametrų puslapis</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Atidaryti galimų veiksmų kontekstinį meniu</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Vēstures vēl nav</value>
|
||||
<value>Vēstures vēl nav.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Atmiņā nav nekas saglabāts</value>
|
||||
<value>Atmiņā nekas nav saglabāts.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Iestatījumu lapa</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Atveriet pieejamo darbību kontekstizvēlni</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Сѐ уште нема историја</value>
|
||||
<value>Сѐ уште нема историја.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Нема ништо зачувано во меморијата</value>
|
||||
<value>Нема ништо зачувано во меморијата.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Страницата со параметри</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Отворете го контекстуалното мени за достапни дејства</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>അവിടെ ഇതുവരെ ചരിത്രമൊന്നുമില്ല</value>
|
||||
<value>ഇതുവരെ ചരിത്രമൊന്നുമില്ല.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>മെമ്മറിയിൽ ഒന്നും തന്നെ സംരക്ഷിച്ചിട്ടില്ല</value>
|
||||
<value>മെമ്മറിയിൽ ഒന്നും തന്നെ സംരക്ഷിച്ചിട്ടില്ല.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>സജ്ജീകരണ പേജ്</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>ലഭ്യമായ പ്രവർത്തനങ്ങൾക്കായി സന്ദർഭ മെനു തുറക്കുക</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Belum ada sejarah lagi</value>
|
||||
<value>Belum ada sejarah lagi.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Tiada apa-apa yang disimpan dalam memori</value>
|
||||
<value>Tiada apa-apa yang disimpan dalam memori.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Halaman tetapan</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Buka menu konteks untuk tindakan yang tersedia</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Det finnes ingen logg ennå</value>
|
||||
<value>Det finnes ingen logg ennå.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Ingenting er lagret i minnet</value>
|
||||
<value>Ingenting er lagret i minnet.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Innstillingssiden</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Åpne hurtigmenyen for å se tilgjengelige handlinger</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -1646,7 +1646,7 @@
|
|||
<comment>An abbreviation for a measurement unit of data</comment>
|
||||
</data>
|
||||
<data name="UnitName_Acre" xml:space="preserve">
|
||||
<value>Are</value>
|
||||
<value>Acre</value>
|
||||
<comment>A measurement unit for area. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Bit" xml:space="preserve">
|
||||
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Er is nog geen geschiedenis</value>
|
||||
<value>Er is nog geen geschiedenis.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Er is niets opgeslagen in het geheugen</value>
|
||||
<value>Er is niets opgeslagen in het geheugen.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Instellingenpagina</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Het contextmenu openen voor beschikbare acties</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Nie ma jeszcze historii</value>
|
||||
<value>Nie ma jeszcze historii.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Brak elementów zapisanych w pamięci</value>
|
||||
<value>Brak elementów zapisanych w pamięci.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Strona ustawień</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Otwieranie menu kontekstowego dla dostępnych akcji</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,7 +2346,7 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Ainda não há histórico</value>
|
||||
<value>Ainda não há histórico.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Página de configurações</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Abrir o menu de contexto para ações disponíveis</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Ainda não existe histórico</value>
|
||||
<value>Ainda não existe histórico.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Não existe nada guardado na memória</value>
|
||||
<value>Não existe nada guardado na memória.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Página Definições</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Abrir o menu de contexto para ações disponíveis</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Nu există încă un istoric</value>
|
||||
<value>Nu există niciun istoric deocamdată.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Nu este nimic salvat în memorie</value>
|
||||
<value>Nu este nimic salvat în memorie.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Pagina de setări</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Deschideți meniul contextual pentru acțiunile disponibile</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2334,7 +2334,7 @@
|
|||
<comment>{Locked="%1"}. Copyright statement, displayed on the About panel. %1 = the current year (4 digits)</comment>
|
||||
</data>
|
||||
<data name="AboutControlContribute" xml:space="preserve">
|
||||
<value>Чтобы узнать, как вы можете участвовать в Windows калькулятора, изучите проект на %HL%GitHub%HL%.</value>
|
||||
<value>Чтобы узнать, как вы можете участвовать в разработке калькулятора Windows, изучите проект на %HL%GitHub%HL%.</value>
|
||||
<comment>{Locked="%HL%GitHub%HL%"}. GitHub link, Displayed on the About panel</comment>
|
||||
</data>
|
||||
<data name="AboutGroupTitle.Text" xml:space="preserve">
|
||||
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Журнала еще нет</value>
|
||||
<value>Журнала еще нет.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>В памяти ничего не сохранено</value>
|
||||
<value>Нет сохраненных элементов в памяти.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -3384,7 +3384,7 @@
|
|||
<comment>String describing constant monotonicity of a function</comment>
|
||||
</data>
|
||||
<data name="KGFMonotonicityDecreasing" xml:space="preserve">
|
||||
<value>Уменьшающаяся</value>
|
||||
<value>Убывающая</value>
|
||||
<comment>String describing decreasing monotonicity of a function</comment>
|
||||
</data>
|
||||
<data name="KGFMonotonicityError" xml:space="preserve">
|
||||
|
@ -3392,7 +3392,7 @@
|
|||
<comment>Error displayed when monotonicity cannot be determined</comment>
|
||||
</data>
|
||||
<data name="KGFMonotonicityIncreasing" xml:space="preserve">
|
||||
<value>Увеличивающаяся</value>
|
||||
<value>Возрастающая</value>
|
||||
<comment>String describing increasing monotonicity of a function</comment>
|
||||
</data>
|
||||
<data name="KGFMonotonicityUnknown" xml:space="preserve">
|
||||
|
@ -3452,7 +3452,7 @@
|
|||
<comment>Message displayed when the graph does not have any y-intercepts</comment>
|
||||
</data>
|
||||
<data name="Domain" xml:space="preserve">
|
||||
<value>Домен</value>
|
||||
<value>Область определения</value>
|
||||
<comment>Title for KeyGraphFeatures Domain Property</comment>
|
||||
</data>
|
||||
<data name="HorizontalAsymptotes" xml:space="preserve">
|
||||
|
@ -3492,11 +3492,11 @@
|
|||
<comment>Title for KeyGraphFeatures Parity Property</comment>
|
||||
</data>
|
||||
<data name="Periodicity" xml:space="preserve">
|
||||
<value>Цикл</value>
|
||||
<value>Период</value>
|
||||
<comment>Title for KeyGraphFeatures Periodicity Property. The period of a mathematical function is the smallest interval in its input values such that its output values repeat every such interval.</comment>
|
||||
</data>
|
||||
<data name="Range" xml:space="preserve">
|
||||
<value>Диапазон</value>
|
||||
<value>Область значений</value>
|
||||
<comment>Title for KeyGraphFeatures Range Property</comment>
|
||||
</data>
|
||||
<data name="VerticalAsymptotes" xml:space="preserve">
|
||||
|
@ -3515,11 +3515,11 @@
|
|||
<value>Не удалось выполнить анализ функции.</value>
|
||||
</data>
|
||||
<data name="KGFDomainNone" xml:space="preserve">
|
||||
<value>Не удалось вычислить домен для этой функции.</value>
|
||||
<value>Не удается вычислить область значений для этой функции.</value>
|
||||
<comment>Error displayed when Domain is not returned from the analyzer.</comment>
|
||||
</data>
|
||||
<data name="KGFRangeNone" xml:space="preserve">
|
||||
<value>Не удается вычислить диапазон для этой функции.</value>
|
||||
<value>Не удается вычислить область значений для этой функции.</value>
|
||||
<comment>Error displayed when Range is not returned from the analyzer.</comment>
|
||||
</data>
|
||||
<data name="Overflow" xml:space="preserve">
|
||||
|
@ -3547,7 +3547,7 @@
|
|||
<comment>Error that occurs during graphing when a factorial has a large n</comment>
|
||||
</data>
|
||||
<data name="ModuloCannotPerformOnFloat" xml:space="preserve">
|
||||
<value>По модулю можно использовать только целые числа</value>
|
||||
<value>По модулю можно брать только целые числа</value>
|
||||
<comment>Error that occurs during graphing when modulo is used with a float.</comment>
|
||||
</data>
|
||||
<data name="EquationHasNoSolution" xml:space="preserve">
|
||||
|
@ -3563,7 +3563,7 @@
|
|||
<comment>Error that occurs during graphing when mutually exclusive conditions are used.</comment>
|
||||
</data>
|
||||
<data name="OutOfDomain" xml:space="preserve">
|
||||
<value>Уравнение вне домена</value>
|
||||
<value>Уравнение вне области определения</value>
|
||||
<comment>Error that occurs during graphing when the equation is out of domain.</comment>
|
||||
</data>
|
||||
<data name="GE_NotSupported" xml:space="preserve">
|
||||
|
@ -3583,7 +3583,7 @@
|
|||
<comment>Error that occurs during graphing when a number has too many decimals. Ex: 1.2.3</comment>
|
||||
</data>
|
||||
<data name="DecimalPointWithoutDigits" xml:space="preserve">
|
||||
<value>В десятичной запятой отсутствуют цифры</value>
|
||||
<value>Нет цифр рядом с десятичной запятой</value>
|
||||
<comment>Error that occurs during graphing with a decimal point without digits</comment>
|
||||
</data>
|
||||
<data name="UnexpectedEndOfExpression" xml:space="preserve">
|
||||
|
@ -3615,7 +3615,7 @@
|
|||
<comment>Error that occurs during graphing when the expression is empty</comment>
|
||||
</data>
|
||||
<data name="EqualWithoutEquation" xml:space="preserve">
|
||||
<value>Равный был использован без уравнения</value>
|
||||
<value>Знак равенства использован без уравнения</value>
|
||||
<comment>Error that occurs during graphing when equal is used without an equation. Ex: sin(x=y)</comment>
|
||||
</data>
|
||||
<data name="ExpectParenthesisAfterFunctionName" xml:space="preserve">
|
||||
|
@ -3623,7 +3623,7 @@
|
|||
<comment>Error that occurs during graphing when parenthesis are missing after a function.</comment>
|
||||
</data>
|
||||
<data name="IncorrectNumParameter" xml:space="preserve">
|
||||
<value>Математическая операция имеет неверное количество параметров</value>
|
||||
<value>Неверное количество параметров функции</value>
|
||||
<comment>Error that occurs during graphing when a function has the wrong number of parameters</comment>
|
||||
</data>
|
||||
<data name="InvalidVariableNameFormat" xml:space="preserve">
|
||||
|
@ -3643,11 +3643,11 @@
|
|||
<comment>Error that occurs during graphing when i or I is used.</comment>
|
||||
</data>
|
||||
<data name="GeneralError" xml:space="preserve">
|
||||
<value>Уравнение не может быть построено</value>
|
||||
<value>График уравнения не может быть построен</value>
|
||||
<comment>General error that occurs during graphing.</comment>
|
||||
</data>
|
||||
<data name="InvalidNumberDigit" xml:space="preserve">
|
||||
<value>Цифра не может быть разрешена для данной базы</value>
|
||||
<value>Цифра не может использоваться с этим основанием</value>
|
||||
<comment>Error that occurs during graphing when trying to use bases incorrect. Ex: base(2,1020).</comment>
|
||||
</data>
|
||||
<data name="InvalidNumberBase" xml:space="preserve">
|
||||
|
@ -3655,7 +3655,7 @@
|
|||
<comment>Error that occurs during graphing when the base is out of range.</comment>
|
||||
</data>
|
||||
<data name="InvalidVariableSpecification" xml:space="preserve">
|
||||
<value>Математическая операция требует, чтобы один из ее параметров был переменной</value>
|
||||
<value>Один из параметров функции должен быть переменной</value>
|
||||
<comment>Error that occurs during graphing when a function requires a variable in a particular position. Ex: 2nd argument of deriv.</comment>
|
||||
</data>
|
||||
<data name="ExpectingLogicalOperands" xml:space="preserve">
|
||||
|
@ -3671,11 +3671,11 @@
|
|||
<comment>Error that occurs during graphing when x or y is used in the limit point.</comment>
|
||||
</data>
|
||||
<data name="CannotUseComplexInfinityInReal" xml:space="preserve">
|
||||
<value>Не может использовать сложную бесконечность</value>
|
||||
<value>Нельзя использовать комплексную бесконечность</value>
|
||||
<comment>Error that occurs during graphing when complex infinity is used</comment>
|
||||
</data>
|
||||
<data name="CannotUseIInInequalitySolving" xml:space="preserve">
|
||||
<value>Не может использовать комплексные числа в неравенствах</value>
|
||||
<value>Нельзя использовать комплексные числа в неравенствах</value>
|
||||
<comment>Error that occurs during graphing when complex numbers are used in inequalities.</comment>
|
||||
</data>
|
||||
<data name="equationAnalysisBack.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
||||
|
@ -3771,7 +3771,7 @@
|
|||
<comment>Used in Graphing Calculator to switch the view to the equation mode</comment>
|
||||
</data>
|
||||
<data name="GraphSwitchToGraphMode" xml:space="preserve">
|
||||
<value>Перейти в режим графа</value>
|
||||
<value>Перейти в режим графика</value>
|
||||
<comment>Used in Graphing Calculator to switch the view to the graph mode</comment>
|
||||
</data>
|
||||
<data name="SwitchModeToggleButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Страница параметров</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Открыть контекстное меню для просмотра доступных действий</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Zatiaľ neexistuje žiadna história</value>
|
||||
<value>Zatiaľ nie je k dispozícii žiadna história.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>V pamäti nie je nič uložené</value>
|
||||
<value>V pamäti nie je nič uložené.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Stránka Nastavenia</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Otvoriť kontextovú ponuku pre dostupné akcie</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Zgodovine še ni</value>
|
||||
<value>Zgodovine še ni.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Ničesar ni v prostoru za shranjevanje</value>
|
||||
<value>Ničesar ni v prostoru za shranjevanje.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Stran z nastavitvami</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Odpri priročni meni za dejanja, ki so na voljo</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Nuk ka ende asnjë histori</value>
|
||||
<value>Nuk ka ende asnjë histori.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Nuk ka asgjë të ruajtur në memorie</value>
|
||||
<value>Nuk ka asgjë të ruajtur në memorie.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Faqja e konfigurimeve</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Hap menynë e kontekstit për veprimet në dispozicion</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Još uvek nema istorije</value>
|
||||
<value>Još uvek nema istorije.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Ništa nije sačuvano u memoriji</value>
|
||||
<value>Ništa nije sačuvano u memoriji.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Stranica sa postavkama</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Otvorite kontekstualni meni za dostupne radnje</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -1658,7 +1658,7 @@
|
|||
<comment>A measurement unit for energy. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_BTUPerMinute" xml:space="preserve">
|
||||
<value>BTU/minut</value>
|
||||
<value>BTU per minut</value>
|
||||
<comment>A measurement unit for power: British Thermal Units per minute. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Byte" xml:space="preserve">
|
||||
|
@ -1666,7 +1666,7 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Calorie" xml:space="preserve">
|
||||
<value>Termiska kalorier</value>
|
||||
<value>Kalorier</value>
|
||||
<comment>A measurement unit for energy. Please note that this is the "small calorie" used in science for measuring heat energy, not the "large calorie" commonly used for measuring food energy. If there is a simple term to distinguish this one from the large "Food calorie", please use that. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Centimeter" xml:space="preserve">
|
||||
|
@ -1726,7 +1726,7 @@
|
|||
<comment>A measurement unit for energy. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Foot-PoundPerMinute" xml:space="preserve">
|
||||
<value>Pundfot/minut</value>
|
||||
<value>Pundfot per minut</value>
|
||||
<comment>A measurement unit for power. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Gigabit" xml:space="preserve">
|
||||
|
@ -1758,7 +1758,7 @@
|
|||
<comment>A measurement unit for energy. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Kilowatthour" xml:space="preserve">
|
||||
<value>Kilowatt-hours</value>
|
||||
<value>Kilowatt-timmar</value>
|
||||
<comment>A measurement unit for electricity consumption. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Kelvin" xml:space="preserve">
|
||||
|
@ -1774,7 +1774,7 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Kilocalorie" xml:space="preserve">
|
||||
<value>Kalorier</value>
|
||||
<value>Kilokalorier</value>
|
||||
<comment>A measurement unit for energy. The scientific name is kilocalorie, but this is what is commonly referred to as a "calorie" or "large calorie" when talking about food. Please use the everyday-use word for food energy calories if there is one. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Kilojoule" xml:space="preserve">
|
||||
|
@ -1806,7 +1806,7 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Megabyte" xml:space="preserve">
|
||||
<value>MB</value>
|
||||
<value>Megabyte</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Meter" xml:space="preserve">
|
||||
|
@ -2030,7 +2030,7 @@
|
|||
<comment>A measurement unit for Angle.</comment>
|
||||
</data>
|
||||
<data name="UnitName_Gradian" xml:space="preserve">
|
||||
<value>Gradians</value>
|
||||
<value>Gon</value>
|
||||
<comment>A measurement unit for Angle.</comment>
|
||||
</data>
|
||||
<data name="UnitName_Atmosphere" xml:space="preserve">
|
||||
|
@ -2038,7 +2038,7 @@
|
|||
<comment>A measurement unit for Pressure.</comment>
|
||||
</data>
|
||||
<data name="UnitName_Bar" xml:space="preserve">
|
||||
<value>Barer</value>
|
||||
<value>Bar</value>
|
||||
<comment>A measurement unit for Pressure.</comment>
|
||||
</data>
|
||||
<data name="UnitName_KiloPascal" xml:space="preserve">
|
||||
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Det finns ingen historik än</value>
|
||||
<value>Det finns ingen historik än.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Det finns inget sparat i minnet</value>
|
||||
<value>Det finns inget sparat i minnet.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Sidan Inställningar</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Öppna snabbmenyn för tillgängliga åtgärder</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>இங்கு இதுவரை வரலாறு ஏதுமில்லை</value>
|
||||
<value>இங்கு இதுவரை வரலாறு ஏதுமில்லை.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>நினைவகத்தில் எதுவும் சேமிக்கப்படவில்லை</value>
|
||||
<value>நினைவகத்தில் எதுவும் சேமிக்கப்படவில்லை.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4179,4 +4179,8 @@
|
|||
<value>அமைப்புகள் பக்கம்</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>கிடைக்கக்கூடிய செயல்களுக்கு சூழல் மெனுவைத் திறக்கவும்</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>ఇప్పటికీ చరిత్ర లేదు</value>
|
||||
<value>ఇంకా చరిత్ర లేదు.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>మెమరీలో ఏమీ సేవ్ కాలేదు</value>
|
||||
<value>మెమరీలో ఏదీ సేవ్ చేయబడలేదు.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>సెట్టింగ్ల పేజీ</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>అందుబాటులో ఉన్న చర్యల కోసం సందర్భ మెనుని తెరవండి</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -4178,4 +4178,8 @@
|
|||
<value>เพจการตั้งค่า</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>เปิดเมนูบริบทสําหรับการดําเนินการที่พร้อมใช้งาน</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Henüz geçmiş yok</value>
|
||||
<value>Henüz geçmiş yok.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Belleğe kaydedilmiş bir şey yok</value>
|
||||
<value>Belleğe kaydedilmiş bir şey yok.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Ayarlar sayfası</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Kullanılabilir eylemler için bağlam menüsünü açın</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Записів журналу ще немає</value>
|
||||
<value>Записів журналу ще немає.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>У пам’яті нічого не збережено</value>
|
||||
<value>У пам’яті нічого не збережено.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Сторінка параметрів</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Відкрити контекстне меню для доступних дій</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>Chưa có lịch sử</value>
|
||||
<value>Chưa có lịch sử.</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>Không có nội dung nào được lưu trong bộ nhớ</value>
|
||||
<value>Không có nội dung nào được lưu trong bộ nhớ.</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>Trang cài đặt</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>Mở menu ngữ cảnh cho các hành động có sẵn</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -2066,7 +2066,7 @@
|
|||
<comment>A measurement unit for weight. Note: Dekagram is spelled "decagram" everywhere except where US English is used. (EN-US dekagram, elsewhere decagram). (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Decigram" xml:space="preserve">
|
||||
<value>十分之一克</value>
|
||||
<value>分克</value>
|
||||
<comment>A measurement unit for weight. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Gram" xml:space="preserve">
|
||||
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>尚无历史记录</value>
|
||||
<value>尚无历史记录。</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>存储器中未保存数据</value>
|
||||
<value>内存中未保存任何内容。</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>“设置”页面</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>打开可用操作的上下文菜单</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -1806,7 +1806,7 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Megabyte" xml:space="preserve">
|
||||
<value>Megabyte</value>
|
||||
<value>Mega 位元組</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Meter" xml:space="preserve">
|
||||
|
@ -1858,11 +1858,11 @@
|
|||
<comment>A measurement unit for length. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Petabit" xml:space="preserve">
|
||||
<value>Petabit</value>
|
||||
<value>Peta 位元</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Petabyte" xml:space="preserve">
|
||||
<value>P 位元組</value>
|
||||
<value>Peta 位元組</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Second" xml:space="preserve">
|
||||
|
@ -1902,7 +1902,7 @@
|
|||
<comment>A measurement unit for area. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Terabit" xml:space="preserve">
|
||||
<value>T 位元</value>
|
||||
<value>Tera 位元</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Terabyte" xml:space="preserve">
|
||||
|
@ -2346,11 +2346,11 @@
|
|||
<comment>The text that shows in the dropdown navigation control to give the user the option to send feedback about the app and it launches Windows Feedback app</comment>
|
||||
</data>
|
||||
<data name="HistoryEmpty.Text" xml:space="preserve">
|
||||
<value>尚無歷程記錄</value>
|
||||
<value>尚無歷程記錄。</value>
|
||||
<comment>The text that shows as the header for the history list</comment>
|
||||
</data>
|
||||
<data name="MemoryPaneEmpty.Text" xml:space="preserve">
|
||||
<value>記憶中沒有儲存任何項目</value>
|
||||
<value>記憶體中沒有儲存任何項目。</value>
|
||||
<comment>The text that shows as the header for the memory list</comment>
|
||||
</data>
|
||||
<data name="MemoryFlyout.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
|
@ -2366,11 +2366,11 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Gibibytes" xml:space="preserve">
|
||||
<value>Gibibyte</value>
|
||||
<value>Gibi 位元組</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Kibibits" xml:space="preserve">
|
||||
<value>Kibibit</value>
|
||||
<value>Kibi 位元</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Kibibytes" xml:space="preserve">
|
||||
|
@ -2402,7 +2402,7 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Exabits" xml:space="preserve">
|
||||
<value>Exabit</value>
|
||||
<value>Exa 位元</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Exabytes" xml:space="preserve">
|
||||
|
@ -2414,15 +2414,15 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Exbibytes" xml:space="preserve">
|
||||
<value>Exbibyte</value>
|
||||
<value>Exbi 位元組</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Zetabits" xml:space="preserve">
|
||||
<value>Zetabit</value>
|
||||
<value>Zeta 位元</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Zetabytes" xml:space="preserve">
|
||||
<value>Zetabyte</value>
|
||||
<value>Zeta 位元組</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Zebibits" xml:space="preserve">
|
||||
|
@ -2430,7 +2430,7 @@
|
|||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Zebibytes" xml:space="preserve">
|
||||
<value>Zebibyte</value>
|
||||
<value>Zebi 位元組</value>
|
||||
<comment>A measurement unit for data. (Please choose the most appropriate plural form to fit any number between 0 and 999,999,999,999,999)</comment>
|
||||
</data>
|
||||
<data name="UnitName_Yottabit" xml:space="preserve">
|
||||
|
@ -4178,4 +4178,8 @@
|
|||
<value>設定頁面</value>
|
||||
<comment>Announcement used when Settings page is opened</comment>
|
||||
</data>
|
||||
<data name="MathRichEditBox.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name" xml:space="preserve">
|
||||
<value>開啟操作功能表以執行可用的動作</value>
|
||||
<comment>Screen reader prompt for the context menu of the expression box</comment>
|
||||
</data>
|
||||
</root>
|
|
@ -1170,183 +1170,212 @@
|
|||
Tapped="DockPanelTapped"
|
||||
Template="{StaticResource DockPanelTemplate}">
|
||||
<Pivot.Resources>
|
||||
<!--
|
||||
This is a copy/paste of DefaultPivotHeaderItemStyle, but
|
||||
1. Updated the Foreground in ViewStates.
|
||||
2. Updated the SelectedPipe
|
||||
-->
|
||||
<Style TargetType="PivotHeaderItem">
|
||||
<Setter Property="FontSize" Value="{ThemeResource PivotHeaderItemFontSize}"/>
|
||||
<Setter Property="FontFamily" Value="{ThemeResource PivotHeaderItemFontFamily}"/>
|
||||
<Setter Property="FontWeight" Value="{ThemeResource PivotHeaderItemThemeFontWeight}"/>
|
||||
<Setter Property="CharacterSpacing" Value="{ThemeResource PivotHeaderItemCharacterSpacing}"/>
|
||||
<Setter Property="Background" Value="{ThemeResource PivotHeaderItemBackgroundUnselected}"/>
|
||||
<Setter Property="Foreground" Value="{ThemeResource TextFillColorPrimaryBrush}"/>
|
||||
<Setter Property="Padding" Value="{ThemeResource PivotHeaderItemMargin}"/>
|
||||
<Setter Property="Height" Value="48"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="IsTabStop" Value="False"/>
|
||||
<Setter Property="UseSystemFocusVisuals" Value="False"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="PivotHeaderItem">
|
||||
<Grid x:Name="Grid"
|
||||
Padding="{TemplateBinding Padding}"
|
||||
Background="{TemplateBinding Background}"
|
||||
CornerRadius="{ThemeResource ControlCornerRadius}">
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.ThemeDictionaries>
|
||||
<ResourceDictionary x:Key="Default">
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedCustom" ResourceKey="TextFillColorPrimaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedPointerOverCustom" ResourceKey="TextFillColorSecondaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedPressedCustom" ResourceKey="TextFillColorTertiaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedCustom" ResourceKey="TextFillColorPrimaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedPointerOverCustom" ResourceKey="TextFillColorSecondaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedPressedCustom" ResourceKey="TextFillColorTertiaryBrush"/>
|
||||
</ResourceDictionary>
|
||||
<ResourceDictionary x:Key="HighContrast">
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedCustom" ResourceKey="SystemControlForegroundBaseMediumBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedPointerOverCustom" ResourceKey="SystemControlHighlightAltBaseMediumHighBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedPressedCustom" ResourceKey="SystemControlHighlightAltBaseMediumHighBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedCustom" ResourceKey="SystemControlHighlightAltBaseHighBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedPointerOverCustom" ResourceKey="SystemControlHighlightAltBaseMediumHighBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedPressedCustom" ResourceKey="SystemControlHighlightAltBaseMediumHighBrush"/>
|
||||
</ResourceDictionary>
|
||||
<ResourceDictionary x:Key="Light">
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedCustom" ResourceKey="TextFillColorPrimaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedPointerOverCustom" ResourceKey="TextFillColorSecondaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundUnselectedPressedCustom" ResourceKey="TextFillColorTertiaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedCustom" ResourceKey="TextFillColorPrimaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedPointerOverCustom" ResourceKey="TextFillColorSecondaryBrush"/>
|
||||
<StaticResource x:Key="PivotHeaderItemForegroundSelectedPressedCustom" ResourceKey="TextFillColorTertiaryBrush"/>
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary.ThemeDictionaries>
|
||||
|
||||
<Grid.RenderTransform>
|
||||
<TranslateTransform x:Name="ContentPresenterTranslateTransform"/>
|
||||
</Grid.RenderTransform>
|
||||
<!--
|
||||
This is a copy/paste of DefaultPivotHeaderItemStyle, but
|
||||
1. Updated the Foreground in ViewStates.
|
||||
2. Updated the SelectedPipe
|
||||
-->
|
||||
<Style TargetType="PivotHeaderItem">
|
||||
<Setter Property="FontSize" Value="{ThemeResource PivotHeaderItemFontSize}"/>
|
||||
<Setter Property="FontFamily" Value="{ThemeResource PivotHeaderItemFontFamily}"/>
|
||||
<Setter Property="FontWeight" Value="{ThemeResource PivotHeaderItemThemeFontWeight}"/>
|
||||
<Setter Property="CharacterSpacing" Value="{ThemeResource PivotHeaderItemCharacterSpacing}"/>
|
||||
<Setter Property="Background" Value="{ThemeResource PivotHeaderItemBackgroundUnselected}"/>
|
||||
<Setter Property="Foreground" Value="{ThemeResource PivotHeaderItemForegroundUnselectedCustom}"/>
|
||||
<Setter Property="Padding" Value="{ThemeResource PivotHeaderItemMargin}"/>
|
||||
<Setter Property="Height" Value="48"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="IsTabStop" Value="False"/>
|
||||
<Setter Property="UseSystemFocusVisuals" Value="False"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="PivotHeaderItem">
|
||||
<Grid x:Name="Grid"
|
||||
Padding="{TemplateBinding Padding}"
|
||||
Background="{TemplateBinding Background}"
|
||||
CornerRadius="{ThemeResource ControlCornerRadius}">
|
||||
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="SelectionStates">
|
||||
<Grid.RenderTransform>
|
||||
<TranslateTransform x:Name="ContentPresenterTranslateTransform"/>
|
||||
</Grid.RenderTransform>
|
||||
|
||||
<VisualStateGroup.Transitions>
|
||||
<VisualTransition From="Unselected"
|
||||
GeneratedDuration="0:0:0.33"
|
||||
To="UnselectedLocked"/>
|
||||
<VisualTransition From="UnselectedLocked"
|
||||
GeneratedDuration="0:0:0.33"
|
||||
To="Unselected"/>
|
||||
</VisualStateGroup.Transitions>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="SelectionStates">
|
||||
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
<VisualStateGroup.Transitions>
|
||||
<VisualTransition From="Unselected"
|
||||
GeneratedDuration="0:0:0.33"
|
||||
To="UnselectedLocked"/>
|
||||
<VisualTransition From="UnselectedLocked"
|
||||
GeneratedDuration="0:0:0.33"
|
||||
To="Unselected"/>
|
||||
</VisualStateGroup.Transitions>
|
||||
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorDisabledBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundDisabled}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Unselected">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UnselectedLocked">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
<VisualState x:Name="Disabled">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
|
||||
<Storyboard>
|
||||
<DoubleAnimation Duration="0"
|
||||
Storyboard.TargetName="ContentPresenterTranslateTransform"
|
||||
Storyboard.TargetProperty="X"
|
||||
To="{ThemeResource PivotHeaderItemLockedTranslation}"/>
|
||||
<DoubleAnimation Duration="0"
|
||||
Storyboard.TargetName="ContentPresenter"
|
||||
Storyboard.TargetProperty="(UIElement.Opacity)"
|
||||
To="0"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorDisabledBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundDisabled}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Unselected">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UnselectedLocked">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
|
||||
<VisualState x:Name="Selected">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Duration="0"
|
||||
Storyboard.TargetName="ContentPresenterTranslateTransform"
|
||||
Storyboard.TargetProperty="X"
|
||||
To="{ThemeResource PivotHeaderItemLockedTranslation}"/>
|
||||
<DoubleAnimation Duration="0"
|
||||
Storyboard.TargetName="ContentPresenter"
|
||||
Storyboard.TargetProperty="(UIElement.Opacity)"
|
||||
To="0"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorPrimaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundSelected}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UnselectedPointerOver">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
<VisualState x:Name="Selected">
|
||||
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorSecondaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundUnselectedPointerOver}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="SelectedPointerOver">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemForegroundSelectedCustom}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundSelected}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UnselectedPointerOver">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorSecondaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundSelectedPointerOver}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SelectedPipe" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AccentFillColorSecondaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UnselectedPressed">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemForegroundUnselectedPointerOverCustom}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundUnselectedPointerOver}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="SelectedPointerOver">
|
||||
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorTertiaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundUnselectedPressed}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="SelectedPressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemForegroundSelectedPointerOverCustom}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundSelectedPointerOver}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SelectedPipe" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AccentFillColorSecondaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="UnselectedPressed">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="SelectedPipe.Visibility" Value="Collapsed"/>
|
||||
</VisualState.Setters>
|
||||
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextFillColorTertiaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundSelectedPressed}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SelectedPipe" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AccentFillColorTertiaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemForegroundUnselectedPressedCustom}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundUnselectedPressed}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="SelectedPressed">
|
||||
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemForegroundSelectedPressedCustom}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PivotHeaderItemBackgroundSelectedPressed}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SelectedPipe" Storyboard.TargetProperty="Fill">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource AccentFillColorTertiaryBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
|
||||
<ContentPresenter x:Name="ContentPresenter"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
FontFamily="{TemplateBinding FontFamily}"
|
||||
FontSize="{TemplateBinding FontSize}"
|
||||
FontWeight="{TemplateBinding FontWeight}"
|
||||
Content="{TemplateBinding Content}"
|
||||
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||
OpticalMarginAlignment="TrimSideBearings"/>
|
||||
<Rectangle x:Name="SelectedPipe"
|
||||
Width="16"
|
||||
Height="3"
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
Fill="{ThemeResource AccentFillColorDefaultBrush}"
|
||||
RadiusX="1.5"
|
||||
RadiusY="1.5"/>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<ContentPresenter x:Name="ContentPresenter"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
FontFamily="{TemplateBinding FontFamily}"
|
||||
FontSize="{TemplateBinding FontSize}"
|
||||
FontWeight="{TemplateBinding FontWeight}"
|
||||
Content="{TemplateBinding Content}"
|
||||
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||
OpticalMarginAlignment="TrimSideBearings"/>
|
||||
<Rectangle x:Name="SelectedPipe"
|
||||
Width="16"
|
||||
Height="3"
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
Fill="{ThemeResource AccentFillColorDefaultBrush}"
|
||||
RadiusX="1.5"
|
||||
RadiusY="1.5"/>
|
||||
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</Pivot.Resources>
|
||||
<PivotItem x:Name="HistoryPivotItem"
|
||||
Margin="0,10,0,0"
|
||||
AutomationProperties.AutomationId="HistoryLabel"
|
||||
AutomationProperties.Name="{utils:ResourceString Name=HistoryPivotItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
|
||||
AutomationProperties.Name="{x:Bind HistoryPivotItemUiaName, Mode=OneWay}">
|
||||
<PivotItem.Header>
|
||||
<TextBlock AccessKey="{utils:ResourceString Name=HistoryLabel/AccessKey}"
|
||||
AccessKeyInvoked="OnHistoryAccessKeyInvoked"
|
||||
|
@ -1357,7 +1386,7 @@
|
|||
<PivotItem x:Name="MemoryPivotItem"
|
||||
Margin="0,10,0,0"
|
||||
AutomationProperties.AutomationId="MemoryLabel"
|
||||
AutomationProperties.Name="{utils:ResourceString Name=MemoryPivotItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
|
||||
AutomationProperties.Name="{x:Bind MemoryPivotItemUiaName, Mode=OneWay}">
|
||||
<PivotItem.Header>
|
||||
<TextBlock AccessKey="{utils:ResourceString Name=MemoryLabel/AccessKey}"
|
||||
AccessKeyInvoked="OnMemoryAccessKeyInvoked"
|
||||
|
|
|
@ -6,7 +6,7 @@ using CalculatorApp.ViewModel;
|
|||
using CalculatorApp.ViewModel.Common;
|
||||
|
||||
using System;
|
||||
|
||||
using Windows.ApplicationModel.Resources;
|
||||
using Windows.Foundation;
|
||||
using Windows.Globalization.NumberFormatting;
|
||||
using Windows.UI.Core;
|
||||
|
@ -120,6 +120,26 @@ namespace CalculatorApp
|
|||
self.OnIsAlwaysOnTopPropertyChanged((bool)args.OldValue, (bool)args.NewValue);
|
||||
}));
|
||||
|
||||
public string HistoryPivotItemUiaName
|
||||
{
|
||||
get => (string)GetValue(HistoryPivotItemUiaNameProperty);
|
||||
set => SetValue(HistoryPivotItemUiaNameProperty, value);
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for HistoryPivotItemUiaName. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty HistoryPivotItemUiaNameProperty =
|
||||
DependencyProperty.Register(nameof(HistoryPivotItemUiaName), typeof(string), typeof(Calculator), new PropertyMetadata(string.Empty));
|
||||
|
||||
public string MemoryPivotItemUiaName
|
||||
{
|
||||
get => (string)GetValue(MemoryPivotItemUiaNameProperty);
|
||||
set => SetValue(MemoryPivotItemUiaNameProperty, value);
|
||||
}
|
||||
|
||||
// Using a DependencyProperty as the backing store for MemoryPivotItemUiaName. This enables animation, styling, binding, etc...
|
||||
public static readonly DependencyProperty MemoryPivotItemUiaNameProperty =
|
||||
DependencyProperty.Register(nameof(MemoryPivotItemUiaName), typeof(string), typeof(Calculator), new PropertyMetadata(string.Empty));
|
||||
|
||||
public System.Windows.Input.ICommand HistoryButtonPressed
|
||||
{
|
||||
get
|
||||
|
@ -159,6 +179,7 @@ namespace CalculatorApp
|
|||
{
|
||||
if (m_historyList == null)
|
||||
{
|
||||
historyVM.PropertyChanged += (s, e) => UpdateHistoryState();
|
||||
m_historyList = new HistoryList
|
||||
{
|
||||
DataContext = historyVM
|
||||
|
@ -296,6 +317,7 @@ namespace CalculatorApp
|
|||
MemRecall.IsEnabled = false;
|
||||
ClearMemoryButton.IsEnabled = false;
|
||||
}
|
||||
MemoryPivotItemUiaName = GetMemoryPivotItemUiaString(Model.IsMemoryEmpty);
|
||||
|
||||
if (DockPanel.Visibility == Visibility.Visible)
|
||||
{
|
||||
|
@ -328,6 +350,7 @@ namespace CalculatorApp
|
|||
{
|
||||
DockPivot.SelectedIndex = 0;
|
||||
}
|
||||
HistoryPivotItemUiaName = GetHistoryPivotItemUiaString(Model.HistoryVM.ItemsCount == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -748,7 +771,10 @@ namespace CalculatorApp
|
|||
|
||||
private void SetChildAsMemory()
|
||||
{
|
||||
DockMemoryHolder.Child = GetMemory();
|
||||
if (DockMemoryHolder.Child != GetMemory())
|
||||
{
|
||||
DockMemoryHolder.Child = GetMemory();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetChildAsHistory()
|
||||
|
@ -758,7 +784,10 @@ namespace CalculatorApp
|
|||
InitializeHistoryView(Model.HistoryVM);
|
||||
}
|
||||
|
||||
DockHistoryHolder.Child = m_historyList;
|
||||
if (DockHistoryHolder.Child != m_historyList)
|
||||
{
|
||||
DockHistoryHolder.Child = m_historyList;
|
||||
}
|
||||
}
|
||||
|
||||
private Memory GetMemory()
|
||||
|
@ -843,5 +872,19 @@ namespace CalculatorApp
|
|||
var mode = IsStandard ? ViewMode.Standard : IsScientific ? ViewMode.Scientific : ViewMode.Programmer;
|
||||
TraceLogger.GetInstance().LogVisualStateChanged(mode, e.NewState.Name, IsAlwaysOnTop);
|
||||
}
|
||||
|
||||
private string GetMemoryPivotItemUiaString(bool isEmpty)
|
||||
{
|
||||
var loader = ResourceLoader.GetForCurrentView();
|
||||
var label = loader.GetString("MemoryLabel/Text");
|
||||
return isEmpty ? $"{loader.GetString("MemoryPaneEmpty/Text")} {label}" : label;
|
||||
}
|
||||
|
||||
private string GetHistoryPivotItemUiaString(bool isEmpty)
|
||||
{
|
||||
var loader = ResourceLoader.GetForCurrentView();
|
||||
var label = loader.GetString("HistoryLabel/Text");
|
||||
return isEmpty ? $"{loader.GetString("HistoryEmpty/Text")} {label}" : label;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -223,7 +223,7 @@
|
|||
<VisualState x:Name="Focused">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Background" Storyboard.TargetProperty="Background">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource CalendarDatePickerBackgroundFocused}"/>
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SubtleFillColorTransparentBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
|
@ -1023,7 +1023,12 @@
|
|||
<StaticResource x:Key="ComboBoxBackgroundUnfocused" ResourceKey="SubtleFillColorTransparentBrush"/>
|
||||
<StaticResource x:Key="ComboBoxBackgroundFocused" ResourceKey="SubtleFillColorTransparentBrush"/>
|
||||
</ResourceDictionary>
|
||||
<ResourceDictionary x:Key="HighContrast"/>
|
||||
<ResourceDictionary x:Key="HighContrast">
|
||||
<StaticResource x:Key="ComboBoxBackgroundPointerOver" ResourceKey="SubtleFillColorSecondaryBrush"/>
|
||||
<StaticResource x:Key="ComboBoxBackgroundPressed" ResourceKey="SubtleFillColorTertiaryBrush"/>
|
||||
<StaticResource x:Key="ComboBoxBackgroundUnfocused" ResourceKey="SubtleFillColorTransparentBrush"/>
|
||||
<StaticResource x:Key="ComboBoxBackgroundFocused" ResourceKey="SubtleFillColorTransparentBrush"/>
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary.ThemeDictionaries>
|
||||
</ResourceDictionary>
|
||||
</ComboBox.Resources>
|
||||
|
|
|
@ -661,6 +661,7 @@
|
|||
FontSize="{TemplateBinding FontSize}"
|
||||
FontWeight="{TemplateBinding FontWeight}"
|
||||
AcceptsReturn="false"
|
||||
AutomationProperties.Name="{utils:ResourceString Name=MathRichEditBox/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
|
||||
InputScope="Text"
|
||||
MathText="{Binding MathEquation, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
|
||||
MaxLength="2048"
|
||||
|
|
|
@ -1,189 +0,0 @@
|
|||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License.
|
||||
|
||||
using CalculatorApp.Common;
|
||||
using CalculatorApp.ViewModel.Common;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Windows.ApplicationModel.Core;
|
||||
using Windows.UI.Core;
|
||||
using Windows.UI.ViewManagement;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
|
||||
namespace CalculatorApp
|
||||
{
|
||||
public sealed class WindowFrameService
|
||||
{
|
||||
public Page GetCurrentPage()
|
||||
{
|
||||
return (m_frame.Content as Page);
|
||||
}
|
||||
|
||||
public void SetNewFrame(Windows.UI.Xaml.Controls.Frame frame)
|
||||
{
|
||||
Debug.Assert(frame.BackStackDepth == 0);
|
||||
m_frame = frame;
|
||||
}
|
||||
|
||||
// createdByUs means any window that we create.
|
||||
// !createdByUs means the main window
|
||||
internal static WindowFrameService CreateNewWindowFrameService(Frame viewFrame, bool createdByUs, WeakReference parent)
|
||||
{
|
||||
Debug.Assert(CoreWindow.GetForCurrentThread() != null);
|
||||
var frameService = new WindowFrameService(viewFrame, parent);
|
||||
frameService.InitializeFrameService(createdByUs);
|
||||
return frameService;
|
||||
}
|
||||
|
||||
public CoreDispatcher GetCoreDispatcher()
|
||||
{
|
||||
return m_coreDispatcher;
|
||||
}
|
||||
|
||||
public int GetViewId()
|
||||
{
|
||||
return m_viewId;
|
||||
}
|
||||
|
||||
public void RegisterOnWindowClosingHandler(Action onWindowClosingHandler)
|
||||
{
|
||||
m_onWindowClosingHandlers.Add(onWindowClosingHandler);
|
||||
}
|
||||
|
||||
public Task HandleViewRelease()
|
||||
{
|
||||
TaskCompletionSource<object> tsource = new TaskCompletionSource<object>();
|
||||
_ = m_coreDispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
|
||||
{
|
||||
KeyboardShortcutManager.OnWindowClosed(this.m_viewId);
|
||||
Window.Current.Content = null;
|
||||
this.InvokeWindowClosingHandlers();
|
||||
// This is to ensure InvokeWindowClosingHandlers is be done before RemoveWindowFromMap
|
||||
// If InvokeWindowClosingHandlers throws any exception we want it to crash the application
|
||||
// so we are OK not setting closingHandlersCompletedEvent in that case
|
||||
tsource.SetResult(new object());
|
||||
this.m_coreDispatcher.StopProcessEvents();
|
||||
Window.Current.Close();
|
||||
});
|
||||
|
||||
return tsource.Task;
|
||||
}
|
||||
|
||||
// Throws InvalidArgumentException if a service is already registered with the specified id
|
||||
public void RegisterRuntimeWindowService(Type serviceId, object service)
|
||||
{
|
||||
if (TryResolveRuntimeWindowService(serviceId) != null)
|
||||
{
|
||||
throw new DuplicateNameException(serviceId + " already registered");
|
||||
}
|
||||
|
||||
m_runtimeServicesMap[serviceId.Name] = service;
|
||||
}
|
||||
|
||||
// Returns false if no service was registered with the specified id
|
||||
public bool RemoveRuntimeWindowService(Type serviceId)
|
||||
{
|
||||
return m_runtimeServicesMap.Remove(serviceId.Name);
|
||||
}
|
||||
|
||||
// Throws InvalidArgumentException if no service is registered with the specified id
|
||||
public object ResolveRuntimeWindowService(Type serviceId)
|
||||
{
|
||||
var service = TryResolveRuntimeWindowService(serviceId);
|
||||
|
||||
if (service != null)
|
||||
{
|
||||
return service;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new EntryPointNotFoundException(serviceId.Name + " not found");
|
||||
}
|
||||
}
|
||||
|
||||
public Frame GetFrame()
|
||||
{
|
||||
return m_frame;
|
||||
}
|
||||
|
||||
public void InvokeWindowClosingHandlers()
|
||||
{
|
||||
// Should be called only once just before we kill the window.
|
||||
foreach (var handler in m_onWindowClosingHandlers)
|
||||
{
|
||||
handler();
|
||||
}
|
||||
m_onWindowClosingHandlers.Clear();
|
||||
}
|
||||
|
||||
private WindowFrameService(Frame frame, WeakReference parent)
|
||||
{
|
||||
m_currentWindow = CoreWindow.GetForCurrentThread();
|
||||
m_coreDispatcher = m_currentWindow.Dispatcher;
|
||||
m_frame = frame;
|
||||
m_parent = parent;
|
||||
m_viewId = ApplicationView.GetApplicationViewIdForWindow(m_currentWindow);
|
||||
}
|
||||
|
||||
private void InitializeFrameService(bool createdByUs)
|
||||
{
|
||||
Debug.Assert(createdByUs == (!CoreApplication.GetCurrentView().IsHosted && !CoreApplication.GetCurrentView().IsMain));
|
||||
if (createdByUs)
|
||||
{
|
||||
ApplicationView.GetForCurrentView().Consolidated += OnConsolidated;
|
||||
}
|
||||
else
|
||||
{
|
||||
CoreWindow.GetForCurrentThread().Closed += OnClosed;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnConsolidated(ApplicationView sender, ApplicationViewConsolidatedEventArgs e)
|
||||
{
|
||||
TraceLogger.GetInstance().DecreaseWindowCount();
|
||||
if (m_parent.IsAlive)
|
||||
{
|
||||
var parent = m_parent.Target as App;
|
||||
parent.RemoveWindow(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnClosed(CoreWindow sender, CoreWindowEventArgs args)
|
||||
{
|
||||
if (m_parent.IsAlive)
|
||||
{
|
||||
var parent = m_parent.Target as App;
|
||||
parent.RemoveSecondaryWindow(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Returns nullptr if no service is registered with the specified id
|
||||
private object TryResolveRuntimeWindowService(Type serviceId)
|
||||
{
|
||||
if (m_runtimeServicesMap.TryGetValue(serviceId.Name, out object retval))
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly Windows.UI.Core.CoreWindow m_currentWindow;
|
||||
private readonly Windows.UI.Core.CoreDispatcher m_coreDispatcher;
|
||||
private Windows.UI.Xaml.Controls.Frame m_frame;
|
||||
private readonly int m_viewId;
|
||||
private readonly WeakReference m_parent;
|
||||
|
||||
private readonly Dictionary<string, object> m_runtimeServicesMap = new Dictionary<string, object>();
|
||||
private readonly List<Action> m_onWindowClosingHandlers = new List<Action>();
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,6 @@ using namespace GraphControl;
|
|||
using namespace GraphControl::DX;
|
||||
using namespace Platform;
|
||||
using namespace Platform::Collections;
|
||||
using namespace std;
|
||||
using namespace Concurrency;
|
||||
using namespace Windows::Devices::Input;
|
||||
using namespace Windows::Foundation;
|
||||
|
@ -54,9 +53,9 @@ namespace
|
|||
// posX/posY are the pointer position elements and width,height are the dimensions of the graph surface.
|
||||
// The graphing engine interprets x,y position between the range [-1, 1].
|
||||
// Translate the pointer position to the [-1, 1] bounds.
|
||||
__inline pair<double, double> PointerPositionToGraphPosition(double posX, double posY, double width, double height)
|
||||
__inline std::pair<double, double> PointerPositionToGraphPosition(double posX, double posY, double width, double height)
|
||||
{
|
||||
return make_pair((2 * posX / width - 1), (1 - 2 * posY / height));
|
||||
return { (2 * posX / width - 1), (1 - 2 * posY / height) };
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,7 +70,7 @@ namespace GraphControl
|
|||
|
||||
m_solver->ParsingOptions().SetFormatType(s_defaultFormatType);
|
||||
m_solver->FormatOptions().SetFormatType(s_defaultFormatType);
|
||||
m_solver->FormatOptions().SetMathMLPrefix(wstring(L"mml"));
|
||||
m_solver->FormatOptions().SetMathMLPrefix(L"mml");
|
||||
|
||||
DefaultStyleKey = StringReference(s_defaultStyleKey);
|
||||
|
||||
|
@ -95,21 +94,10 @@ namespace GraphControl
|
|||
{
|
||||
if (m_graph != nullptr && m_renderMain != nullptr)
|
||||
{
|
||||
if (auto renderer = m_graph->GetRenderer())
|
||||
if (auto renderer = m_graph->GetRenderer(); static_cast<bool>(renderer) && SUCCEEDED(renderer->ScaleRange(centerX, centerY, scale)))
|
||||
{
|
||||
m_renderMain->GetCriticalSection().lock();
|
||||
|
||||
if (SUCCEEDED(renderer->ScaleRange(centerX, centerY, scale)))
|
||||
{
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
|
||||
m_renderMain->RunRenderPass();
|
||||
GraphViewChangedEvent(this, GraphViewChangedReason::Manipulation);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
}
|
||||
m_renderMain->RunRenderPass();
|
||||
GraphViewChangedEvent(this, GraphViewChangedReason::Manipulation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -251,7 +239,7 @@ namespace GraphControl
|
|||
|
||||
if (auto analyzer = graph->GetAnalyzer())
|
||||
{
|
||||
vector<Equation ^> equationVector;
|
||||
std::vector<Equation ^> equationVector;
|
||||
equationVector.push_back(equation);
|
||||
UpdateGraphOptions(graph->GetOptions(), equationVector);
|
||||
bool variableIsNotX;
|
||||
|
@ -325,15 +313,15 @@ namespace GraphControl
|
|||
|
||||
task<bool> Grapher::TryUpdateGraph(bool keepCurrentView)
|
||||
{
|
||||
optional<vector<shared_ptr<IEquation>>> initResult = nullopt;
|
||||
std::optional<std::vector<std::shared_ptr<IEquation>>> initResult;
|
||||
bool successful = false;
|
||||
m_errorCode = 0;
|
||||
m_errorType = 0;
|
||||
|
||||
if (m_renderMain && m_graph != nullptr)
|
||||
{
|
||||
unique_ptr<IExpression> graphExpression;
|
||||
wstring request;
|
||||
std::unique_ptr<IExpression> graphExpression;
|
||||
std::wstring request;
|
||||
|
||||
auto validEqs = GetGraphableEquations();
|
||||
|
||||
|
@ -371,13 +359,12 @@ namespace GraphControl
|
|||
co_return false;
|
||||
}
|
||||
|
||||
unique_ptr<IExpression> expr;
|
||||
wstring parsableEquation = s_getGraphOpeningTags;
|
||||
std::wstring parsableEquation = s_getGraphOpeningTags;
|
||||
parsableEquation += equationRequest;
|
||||
parsableEquation += s_getGraphClosingTags;
|
||||
|
||||
// Wire up the corresponding error to an error message in the UI at some point
|
||||
if (!(expr = m_solver->ParseInput(parsableEquation, m_errorCode, m_errorType)))
|
||||
if (auto expr = m_solver->ParseInput(parsableEquation, m_errorCode, m_errorType); !static_cast<bool>(expr))
|
||||
{
|
||||
co_return false;
|
||||
}
|
||||
|
@ -392,11 +379,11 @@ namespace GraphControl
|
|||
{
|
||||
initResult = TryInitializeGraph(keepCurrentView, graphExpression.get());
|
||||
|
||||
if (initResult != nullopt)
|
||||
if (initResult.has_value())
|
||||
{
|
||||
auto graphedEquations = initResult.value();
|
||||
auto& graphedEquations = *initResult;
|
||||
|
||||
for (int i = 0; i < validEqs.size(); i++)
|
||||
for (size_t i = 0; i < validEqs.size(); ++i)
|
||||
{
|
||||
validEqs[i]->GraphedEquation = graphedEquations[i];
|
||||
}
|
||||
|
@ -407,8 +394,8 @@ namespace GraphControl
|
|||
m_renderMain->Graph = m_graph;
|
||||
|
||||
// It is possible that the render fails, in that case fall through to explicit empty initialization
|
||||
co_await m_renderMain->RunRenderPassAsync(false);
|
||||
if (m_renderMain->IsRenderPassSuccesful())
|
||||
auto succ = co_await m_renderMain->RunRenderPassAsync(false);
|
||||
if (succ)
|
||||
{
|
||||
UpdateVariables();
|
||||
successful = true;
|
||||
|
@ -417,7 +404,7 @@ namespace GraphControl
|
|||
{
|
||||
// If we failed to render then we have already lost the previous graph
|
||||
shouldKeepPreviousGraph = false;
|
||||
initResult = nullopt;
|
||||
initResult.reset();
|
||||
m_solver->HRErrorToErrorInfo(m_renderMain->GetRenderError(), m_errorCode, m_errorType);
|
||||
}
|
||||
}
|
||||
|
@ -427,15 +414,15 @@ namespace GraphControl
|
|||
}
|
||||
}
|
||||
|
||||
if (initResult == nullopt)
|
||||
if (!initResult.has_value())
|
||||
{
|
||||
// Do not re-initialize the graph to empty if there are still valid equations graphed
|
||||
if (!shouldKeepPreviousGraph)
|
||||
{
|
||||
initResult = TryInitializeGraph(false, nullptr);
|
||||
if (initResult != nullopt)
|
||||
if (initResult.has_value())
|
||||
{
|
||||
UpdateGraphOptions(m_graph->GetOptions(), vector<Equation ^>());
|
||||
UpdateGraphOptions(m_graph->GetOptions(), {});
|
||||
SetGraphArgs(m_graph);
|
||||
|
||||
m_renderMain->Graph = m_graph;
|
||||
|
@ -475,12 +462,10 @@ namespace GraphControl
|
|||
}
|
||||
}
|
||||
|
||||
void Grapher::SetGraphArgs(shared_ptr<IGraph> graph)
|
||||
void Grapher::SetGraphArgs(std::shared_ptr<IGraph> graph)
|
||||
{
|
||||
if (graph != nullptr && m_renderMain != nullptr)
|
||||
{
|
||||
critical_section::scoped_lock lock(m_renderMain->GetCriticalSection());
|
||||
|
||||
for (auto variablePair : Variables)
|
||||
{
|
||||
graph->SetArgValue(variablePair->Key->Data(), variablePair->Value->Value);
|
||||
|
@ -488,17 +473,17 @@ namespace GraphControl
|
|||
}
|
||||
}
|
||||
|
||||
shared_ptr<IGraph> Grapher::GetGraph(Equation ^ equation)
|
||||
std::shared_ptr<IGraph> Grapher::GetGraph(Equation ^ equation)
|
||||
{
|
||||
shared_ptr<Graphing::IGraph> graph = m_solver->CreateGrapher();
|
||||
std::shared_ptr<Graphing::IGraph> graph = m_solver->CreateGrapher();
|
||||
|
||||
wstring request = s_getGraphOpeningTags;
|
||||
std::wstring request = s_getGraphOpeningTags;
|
||||
request += equation->GetRequest()->Data();
|
||||
request += s_getGraphClosingTags;
|
||||
|
||||
if (unique_ptr<IExpression> graphExpression = m_solver->ParseInput(request, m_errorCode, m_errorType))
|
||||
if (auto expr = m_solver->ParseInput(request, m_errorCode, m_errorType); static_cast<bool>(expr))
|
||||
{
|
||||
if (graph->TryInitialize(graphExpression.get()))
|
||||
if (graph->TryInitialize(expr.get()))
|
||||
{
|
||||
return graph;
|
||||
}
|
||||
|
@ -557,19 +542,12 @@ namespace GraphControl
|
|||
|
||||
if (m_graph != nullptr && m_renderMain != nullptr)
|
||||
{
|
||||
auto workItemHandler = ref new WorkItemHandler([this, variableName, newValue](IAsyncAction ^ action) {
|
||||
m_renderMain->GetCriticalSection().lock();
|
||||
m_graph->SetArgValue(variableName->Data(), newValue);
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
|
||||
m_renderMain->RunRenderPass();
|
||||
});
|
||||
|
||||
ThreadPool::RunAsync(workItemHandler, WorkItemPriority::High, WorkItemOptions::None);
|
||||
m_graph->SetArgValue(variableName->Data(), newValue);
|
||||
[](RenderMain ^ renderMain) -> winrt::fire_and_forget { co_await renderMain->RunRenderPassAsync(); }(m_renderMain);
|
||||
}
|
||||
}
|
||||
|
||||
void Grapher::UpdateGraphOptions(IGraphingOptions& options, const vector<Equation ^>& validEqs)
|
||||
void Grapher::UpdateGraphOptions(IGraphingOptions& options, const std::vector<Equation ^>& validEqs)
|
||||
{
|
||||
options.SetForceProportional(ForceProportionalAxes);
|
||||
|
||||
|
@ -580,7 +558,7 @@ namespace GraphControl
|
|||
|
||||
if (!validEqs.empty())
|
||||
{
|
||||
vector<Graphing::Color> graphColors;
|
||||
std::vector<Graphing::Color> graphColors;
|
||||
graphColors.reserve(validEqs.size());
|
||||
for (Equation ^ eq : validEqs)
|
||||
{
|
||||
|
@ -595,17 +573,17 @@ namespace GraphControl
|
|||
}
|
||||
|
||||
eq->GraphedEquation->GetGraphEquationOptions()->SetLineStyle(static_cast<::Graphing::Renderer::LineStyle>(eq->EquationStyle));
|
||||
eq->GraphedEquation->GetGraphEquationOptions()->SetLineWidth(LineWidth);
|
||||
eq->GraphedEquation->GetGraphEquationOptions()->SetSelectedEquationLineWidth(LineWidth + ((LineWidth <= 2) ? 1 : 2));
|
||||
eq->GraphedEquation->GetGraphEquationOptions()->SetLineWidth(static_cast<float>(LineWidth));
|
||||
eq->GraphedEquation->GetGraphEquationOptions()->SetSelectedEquationLineWidth(static_cast<float>(LineWidth + ((LineWidth <= 2) ? 1 : 2)));
|
||||
}
|
||||
}
|
||||
options.SetGraphColors(graphColors);
|
||||
}
|
||||
}
|
||||
|
||||
vector<Equation ^> Grapher::GetGraphableEquations()
|
||||
std::vector<Equation ^> Grapher::GetGraphableEquations()
|
||||
{
|
||||
vector<Equation ^> validEqs;
|
||||
std::vector<Equation ^> validEqs;
|
||||
|
||||
for (Equation ^ eq : Equations)
|
||||
{
|
||||
|
@ -783,15 +761,10 @@ namespace GraphControl
|
|||
translationX /= -width;
|
||||
translationY /= height;
|
||||
|
||||
m_renderMain->GetCriticalSection().lock();
|
||||
|
||||
if (FAILED(renderer->MoveRangeByRatio(translationX, translationY)))
|
||||
{
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
needsRenderPass = true;
|
||||
}
|
||||
|
||||
|
@ -805,15 +778,10 @@ namespace GraphControl
|
|||
const auto& pos = e->Position;
|
||||
const auto [centerX, centerY] = PointerPositionToGraphPosition(pos.X, pos.Y, width, height);
|
||||
|
||||
m_renderMain->GetCriticalSection().lock();
|
||||
|
||||
if (FAILED(renderer->ScaleRange(centerX, centerY, scale)))
|
||||
{
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
m_renderMain->GetCriticalSection().unlock();
|
||||
needsRenderPass = true;
|
||||
}
|
||||
|
||||
|
@ -834,14 +802,14 @@ namespace GraphControl
|
|||
{
|
||||
if (auto renderer = m_graph->GetRenderer())
|
||||
{
|
||||
shared_ptr<Graphing::IBitmap> BitmapOut;
|
||||
std::shared_ptr<Graphing::IBitmap> BitmapOut;
|
||||
bool hasSomeMissingDataOut = false;
|
||||
HRESULT hr = E_FAIL;
|
||||
hr = renderer->GetBitmap(BitmapOut, hasSomeMissingDataOut);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
// Get the raw data
|
||||
vector<BYTE> byteVector = BitmapOut->GetData();
|
||||
std::vector<BYTE> byteVector = BitmapOut->GetData();
|
||||
auto arr = ArrayReference<BYTE>(byteVector.data(), (unsigned int)byteVector.size());
|
||||
|
||||
// create a memory stream wrapper
|
||||
|
@ -1085,13 +1053,13 @@ void Grapher::OnGraphBackgroundPropertyChanged(Windows::UI::Color /*oldValue*/,
|
|||
}
|
||||
}
|
||||
|
||||
void Grapher::OnGridLinesColorPropertyChanged(Windows::UI::Color /*oldValue*/, Windows::UI::Color newValue)
|
||||
winrt::fire_and_forget Grapher::OnGridLinesColorPropertyChanged(Windows::UI::Color /*oldValue*/, Windows::UI::Color newValue)
|
||||
{
|
||||
if (m_renderMain != nullptr && m_graph != nullptr)
|
||||
{
|
||||
auto gridLinesColor = Graphing::Color(newValue.R, newValue.G, newValue.B, newValue.A);
|
||||
m_graph->GetOptions().SetGridColor(gridLinesColor);
|
||||
m_renderMain->RunRenderPassAsync();
|
||||
co_await m_renderMain->RunRenderPassAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1102,7 +1070,7 @@ void Grapher::OnLineWidthPropertyChanged(double oldValue, double newValue)
|
|||
UpdateGraphOptions(m_graph->GetOptions(), GetGraphableEquations());
|
||||
if (m_renderMain)
|
||||
{
|
||||
m_renderMain->SetPointRadius(LineWidth + 1);
|
||||
m_renderMain->SetPointRadius(static_cast<float>(LineWidth + 1));
|
||||
m_renderMain->RunRenderPass();
|
||||
|
||||
TraceLogger::GetInstance()->LogLineWidthChanged();
|
||||
|
@ -1110,16 +1078,15 @@ void Grapher::OnLineWidthPropertyChanged(double oldValue, double newValue)
|
|||
}
|
||||
}
|
||||
|
||||
optional<vector<shared_ptr<Graphing::IEquation>>> Grapher::TryInitializeGraph(bool keepCurrentView, const IExpression* graphingExp)
|
||||
std::optional<std::vector<std::shared_ptr<Graphing::IEquation>>> Grapher::TryInitializeGraph(bool keepCurrentView, const IExpression* graphingExp)
|
||||
{
|
||||
critical_section::scoped_lock lock(m_renderMain->GetCriticalSection());
|
||||
if (keepCurrentView || IsKeepCurrentView)
|
||||
{
|
||||
auto renderer = m_graph->GetRenderer();
|
||||
double xMin, xMax, yMin, yMax;
|
||||
renderer->GetDisplayRanges(xMin, xMax, yMin, yMax);
|
||||
auto initResult = m_graph->TryInitialize(graphingExp);
|
||||
if (initResult != nullopt)
|
||||
if (initResult.has_value())
|
||||
{
|
||||
if (IsKeepCurrentView)
|
||||
{
|
||||
|
|
|
@ -228,7 +228,6 @@ public enum class GraphViewChangedReason
|
|||
{
|
||||
if (auto render = m_graph->GetRenderer())
|
||||
{
|
||||
Concurrency::critical_section::scoped_lock lock(m_renderMain->GetCriticalSection());
|
||||
render->GetDisplayRanges(*xMin, *xMax, *yMin, *yMax);
|
||||
}
|
||||
}
|
||||
|
@ -280,7 +279,7 @@ public enum class GraphViewChangedReason
|
|||
void OnEquationsPropertyChanged(EquationCollection ^ oldValue, EquationCollection ^ newValue);
|
||||
void OnAxesColorPropertyChanged(Windows::UI::Color oldValue, Windows::UI::Color newValue);
|
||||
void OnGraphBackgroundPropertyChanged(Windows::UI::Color oldValue, Windows::UI::Color newValue);
|
||||
void OnGridLinesColorPropertyChanged(Windows::UI::Color /*oldValue*/, Windows::UI::Color newValue);
|
||||
winrt::fire_and_forget OnGridLinesColorPropertyChanged(Windows::UI::Color /*oldValue*/, Windows::UI::Color newValue);
|
||||
void OnLineWidthPropertyChanged(double oldValue, double newValue);
|
||||
void OnEquationChanged(Equation ^ equation);
|
||||
void OnEquationStyleChanged(Equation ^ equation);
|
||||
|
|
|
@ -30,11 +30,10 @@ namespace
|
|||
namespace GraphControl::DX
|
||||
{
|
||||
RenderMain::RenderMain(SwapChainPanel ^ panel)
|
||||
: m_deviceResources{ panel }
|
||||
, m_nearestPointRenderer{ &m_deviceResources }
|
||||
, m_backgroundColor{ {} }
|
||||
, m_swapChainPanel{ panel }
|
||||
, m_TraceLocation(Point(0, 0))
|
||||
: m_deviceResources(panel)
|
||||
, m_nearestPointRenderer(&m_deviceResources)
|
||||
, m_swapChainPanel(panel)
|
||||
, m_TraceLocation(Point{ 0, 0 })
|
||||
, m_Tracing(false)
|
||||
{
|
||||
// Register to be notified if the Device is lost or recreated
|
||||
|
@ -97,7 +96,7 @@ namespace GraphControl::DX
|
|||
bool wasPointRendered = m_Tracing;
|
||||
if (CanRenderPoint() || wasPointRendered)
|
||||
{
|
||||
RunRenderPassAsync();
|
||||
[](RenderMain ^ self) -> winrt::fire_and_forget { co_await self->RunRenderPassAsync(); }(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -111,7 +110,7 @@ namespace GraphControl::DX
|
|||
bool wasPointRendered = m_Tracing;
|
||||
if (CanRenderPoint() || wasPointRendered)
|
||||
{
|
||||
RunRenderPassAsync();
|
||||
[](RenderMain ^ self) -> winrt::fire_and_forget { co_await self->RunRenderPassAsync(); }(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -146,15 +145,6 @@ namespace GraphControl::DX
|
|||
trackPoint = m_activeTracingPointerLocation;
|
||||
}
|
||||
|
||||
if (!m_criticalSection.try_lock())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
m_criticalSection.unlock();
|
||||
|
||||
critical_section::scoped_lock lock(m_criticalSection);
|
||||
|
||||
int formulaId = -1;
|
||||
double outNearestPointValueX, outNearestPointValueY;
|
||||
float outNearestPointLocationX, outNearestPointLocationY;
|
||||
|
@ -210,67 +200,37 @@ namespace GraphControl::DX
|
|||
|
||||
bool RenderMain::RunRenderPass()
|
||||
{
|
||||
// Non async render passes cancel if they can't obtain the lock immediatly
|
||||
if (!m_criticalSection.try_lock())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
m_criticalSection.unlock();
|
||||
|
||||
critical_section::scoped_lock lock(m_criticalSection);
|
||||
|
||||
return RunRenderPassInternal();
|
||||
}
|
||||
|
||||
IAsyncAction ^ RenderMain::RunRenderPassAsync(bool allowCancel)
|
||||
concurrency::task<bool> RenderMain::RunRenderPassAsync(bool allowCancel)
|
||||
{
|
||||
// Try to cancel the renderPass that is in progress
|
||||
if (m_renderPass != nullptr && m_renderPass->Status == ::AsyncStatus::Started)
|
||||
{
|
||||
m_renderPass->Cancel();
|
||||
}
|
||||
|
||||
auto device = m_deviceResources;
|
||||
auto workItemHandler = ref new WorkItemHandler([this, allowCancel](IAsyncAction ^ action) {
|
||||
critical_section::scoped_lock lock(m_criticalSection);
|
||||
|
||||
// allowCancel is passed as false when the grapher relies on the render pass to validate that an equation can be succesfully rendered.
|
||||
// Passing false garauntees that another render pass doesn't cancel this one.
|
||||
if (allowCancel && action->Status == ::AsyncStatus::Canceled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RunRenderPassInternal();
|
||||
});
|
||||
|
||||
m_renderPass = ThreadPool::RunAsync(workItemHandler, WorkItemPriority::High, WorkItemOptions::None);
|
||||
|
||||
return m_renderPass;
|
||||
bool result = false;
|
||||
auto currentVer = ++m_renderPassVer;
|
||||
Platform::WeakReference that{ this };
|
||||
co_await m_coreWindow->Dispatcher->RunAsync(
|
||||
CoreDispatcherPriority::High,
|
||||
ref new DispatchedHandler(
|
||||
[&]
|
||||
{
|
||||
auto self = that.Resolve<RenderMain>();
|
||||
if (self == nullptr || (allowCancel && m_renderPassVer != currentVer))
|
||||
{
|
||||
return;
|
||||
}
|
||||
result = self->RunRenderPassInternal();
|
||||
}));
|
||||
co_return result;
|
||||
}
|
||||
|
||||
bool RenderMain::RunRenderPassInternal()
|
||||
{
|
||||
// We are accessing Direct3D resources directly without Direct2D's knowledge, so we
|
||||
// must manually acquire and apply the Direct2D factory lock.
|
||||
ID2D1Multithread* m_D2DMultithread;
|
||||
m_deviceResources.GetD2DFactory()->QueryInterface(IID_PPV_ARGS(&m_D2DMultithread));
|
||||
m_D2DMultithread->Enter();
|
||||
|
||||
bool succesful = Render();
|
||||
|
||||
if (succesful)
|
||||
if (Render())
|
||||
{
|
||||
m_deviceResources.Present();
|
||||
return true;
|
||||
}
|
||||
|
||||
// It is absolutely critical that the factory lock be released upon
|
||||
// exiting this function, or else any consequent Direct2D calls will be blocked.
|
||||
m_D2DMultithread->Leave();
|
||||
|
||||
m_isRenderPassSuccesful = succesful;
|
||||
return m_isRenderPassSuccesful;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Renders the current frame according to the current application state.
|
||||
|
|
|
@ -51,17 +51,7 @@ namespace GraphControl::DX
|
|||
|
||||
bool RunRenderPass();
|
||||
|
||||
Windows::Foundation::IAsyncAction ^ RunRenderPassAsync(bool allowCancel = true);
|
||||
|
||||
Concurrency::critical_section& GetCriticalSection()
|
||||
{
|
||||
return m_criticalSection;
|
||||
}
|
||||
|
||||
bool IsRenderPassSuccesful()
|
||||
{
|
||||
return m_isRenderPassSuccesful;
|
||||
}
|
||||
concurrency::task<bool> RunRenderPassAsync(bool allowCancel = true);
|
||||
|
||||
HRESULT GetRenderError();
|
||||
|
||||
|
@ -185,10 +175,6 @@ namespace GraphControl::DX
|
|||
Windows::Foundation::EventRegistrationToken m_tokenOrientationChanged;
|
||||
Windows::Foundation::EventRegistrationToken m_tokenDisplayContentsInvalidated;
|
||||
|
||||
// Track our independent input on a background worker thread.
|
||||
Windows::Foundation::IAsyncAction ^ m_inputLoopWorker = nullptr;
|
||||
Windows::UI::Core::CoreIndependentInputSource ^ m_coreInput = nullptr;
|
||||
|
||||
double m_XTraceValue;
|
||||
double m_YTraceValue;
|
||||
|
||||
|
@ -198,11 +184,7 @@ namespace GraphControl::DX
|
|||
// Are we currently showing the tracing value
|
||||
bool m_Tracing;
|
||||
|
||||
Concurrency::critical_section m_criticalSection;
|
||||
|
||||
Windows::Foundation::IAsyncAction ^ m_renderPass = nullptr;
|
||||
|
||||
bool m_isRenderPassSuccesful;
|
||||
unsigned m_renderPassVer = 0;
|
||||
|
||||
HRESULT m_HResult;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue