diff --git a/src/CalcViewModel/GraphingCalculator/EquationViewModel.cpp b/src/CalcViewModel/GraphingCalculator/EquationViewModel.cpp
index 69467667..22296698 100644
--- a/src/CalcViewModel/GraphingCalculator/EquationViewModel.cpp
+++ b/src/CalcViewModel/GraphingCalculator/EquationViewModel.cpp
@@ -2,11 +2,14 @@
#include "EquationViewModel.h"
using namespace Windows::UI;
+using namespace Windows::UI::Xaml;
namespace CalculatorApp::ViewModel
{
EquationViewModel::EquationViewModel()
- : m_LineColor{ Colors::Transparent }
+ : m_LineColor{ Colors::Transparent },
+ m_KeyGraphFeaturesVisibility{ ::Visibility::Collapsed },
+ m_Expression{ "" }
{
}
}
diff --git a/src/CalcViewModel/GraphingCalculator/EquationViewModel.h b/src/CalcViewModel/GraphingCalculator/EquationViewModel.h
index 0920caf2..50d23df1 100644
--- a/src/CalcViewModel/GraphingCalculator/EquationViewModel.h
+++ b/src/CalcViewModel/GraphingCalculator/EquationViewModel.h
@@ -12,5 +12,6 @@ namespace CalculatorApp::ViewModel
OBSERVABLE_OBJECT();
OBSERVABLE_PROPERTY_RW(Platform::String^, Expression);
OBSERVABLE_PROPERTY_RW(Windows::UI::Color, LineColor);
+ OBSERVABLE_PROPERTY_RW(Windows::UI::Xaml::Visibility, KeyGraphFeaturesVisibility);
};
}
diff --git a/src/Calculator/App.xaml b/src/Calculator/App.xaml
index cec835fb..4bce4693 100644
--- a/src/Calculator/App.xaml
+++ b/src/Calculator/App.xaml
@@ -47,6 +47,8 @@
FallbackColor="{ThemeResource SystemChromeMediumColor}"
TintColor="{ThemeResource SystemChromeLowColor}"
TintOpacity="0.7"/>
+
+
0,0,0,0
@@ -83,6 +85,8 @@
FallbackColor="{ThemeResource SystemChromeMediumColor}"
TintColor="{ThemeResource SystemChromeLowColor}"
TintOpacity="0.7"/>
+
+
0,1,0,0
@@ -105,6 +109,8 @@
+
+
@@ -1073,6 +1079,651 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Visible
+
+
+
+
+
+
+ Visible
+
+
+
+
+
+
+ Visible
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Visible
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Calculator/Calculator.vcxproj b/src/Calculator/Calculator.vcxproj
index 6c40aa2f..68448d7a 100644
--- a/src/Calculator/Calculator.vcxproj
+++ b/src/Calculator/Calculator.vcxproj
@@ -255,6 +255,7 @@
+
App.xaml
@@ -397,6 +398,7 @@
+
Create
Create
diff --git a/src/Calculator/Calculator.vcxproj.filters b/src/Calculator/Calculator.vcxproj.filters
index bc22d788..75e0a58f 100644
--- a/src/Calculator/Calculator.vcxproj.filters
+++ b/src/Calculator/Calculator.vcxproj.filters
@@ -314,6 +314,11 @@
Controls
+
+
+
+ Controls
+
@@ -416,6 +421,11 @@
Controls
+
+
+
+ Controls
+
diff --git a/src/Calculator/Controls/EquationTextBox.cpp b/src/Calculator/Controls/EquationTextBox.cpp
new file mode 100644
index 00000000..6416bcc1
--- /dev/null
+++ b/src/Calculator/Controls/EquationTextBox.cpp
@@ -0,0 +1,220 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+#include "pch.h"
+#include "EquationTextBox.h"
+#include "CalcViewModel/GraphingCalculator/EquationViewModel.h"
+
+using namespace std;
+using namespace Platform;
+using namespace CalculatorApp;
+using namespace CalculatorApp::Common;
+using namespace CalculatorApp::Controls;
+using namespace CalculatorApp::ViewModel;
+using namespace Windows::Foundation;
+using namespace Windows::UI::Xaml;
+using namespace Windows::UI::Xaml::Controls;
+using namespace Windows::UI::Xaml::Input;
+using namespace Windows::UI::Xaml::Controls::Primitives;
+using namespace Windows::UI::Text;
+
+DEPENDENCY_PROPERTY_INITIALIZATION(EquationTextBox, EquationColor);
+DEPENDENCY_PROPERTY_INITIALIZATION(EquationTextBox, KeyGraphFeaturesContent);
+DEPENDENCY_PROPERTY_INITIALIZATION(EquationTextBox, ColorChooserFlyout);
+
+void EquationTextBox::OnApplyTemplate()
+{
+ m_equationButton = dynamic_cast