private static void PromptTextPropertyChanged(
            DependencyObject dependency,
            DependencyPropertyChangedEventArgs e)
        {
            CueBannerTextBox cueTextBox = (CueBannerTextBox)dependency;

            cueTextBox.PromptText = dependency.GetValue(TextPromptProperty).ToString();
            cueTextBox.Loaded    += CueTextBox_Loaded;
        }
        private void textBox_GotFocus(object sender, RoutedEventArgs e)
        {
            CueBannerTextBox tb = (CueBannerTextBox)sender;

            if (tb.UsePrompt)
            {
                tb.UsePrompt = false;
                tb.Text      = string.Empty;
            }
        }
        private void textBox_LostFocus(object sender, RoutedEventArgs e)
        {
            CueBannerTextBox tb = (CueBannerTextBox)sender;

            if (tb.Text.Length == 0 || tb.Text == tb.PromptText)
            {
                tb.UsePrompt = true;
                tb.Text      = tb.PromptText;
            }
        }
        private static void CueTextBox_Loaded(object sender, RoutedEventArgs e)
        {
            CueBannerTextBox cueTextBox = (CueBannerTextBox)sender;

            if (string.IsNullOrEmpty(cueTextBox.Text))
            {
                cueTextBox.UsePrompt   = true;
                cueTextBox.ActucalText = cueTextBox.PromptText;
            }
        }
        private void config_TextChanged(object sender, TextChangedEventArgs e)
        {
            SaveButton.IsEnabled =
                string.Compare(CAwsConfig.Instance.read("AwsAccessKey"), AwsAccessKey.ActucalText) != 0 ||
                string.Compare(CAwsConfig.Instance.read("AwsSecretKey"), AwsSecretKey.ActucalText) != 0 ||
                string.Compare(CAwsConfig.Instance.read("Ec2CertPath"), Ec2CertPath.ActucalText) != 0 ||
                string.Compare(CAwsConfig.Instance.read("Ec2Home"), Ec2Home.ActucalText) != 0 ||
                string.Compare(CAwsConfig.Instance.read("Ec2UserPrivateKey"), Ec2UserPrivateKey.ActucalText) != 0 ||
                string.Compare(CAwsConfig.Instance.read("JavaHome"), JavaHome.ActucalText) != 0;

            CueBannerTextBox tb = (CueBannerTextBox)sender;

            if (tb.UsePrompt)
            {
                tb.Foreground = Brushes.Gray;
            }
            else
            {
                tb.Foreground = Brushes.Black;
            }
        }