Я не уверен, как еще описать это.
Проблема: я запускаю стиль для моего текстового поля WPF в app.xaml
<Grid>
<TextBox Style="{StaticResource WatermarkTextbox}" x:Name="Email" Height="30" Width="300" FontSize="20" FontFamily="Comic Sans MS" Margin="0 40 0 0" />
</Grid>
Когда у меня есть стиль в моем TextBox, я не могу получить письменную информацию в свой SQL. Это мой стиль в App.xaml:
<local:BoolToVisibilityConverter x:Key="InputToVisibility"/>
<Style x:Key="WatermarkTextbox" TargetType="{x:Type TextBox}">
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<TextBlock Text="Email...">
<TextBlock.Visibility>
<MultiBinding Converter="{StaticResource InputToVisibility}">
<Binding ElementName="Email" Path="Text.IsEmpty"/>
<Binding ElementName="Email" Path="IsFocused"/>
</MultiBinding>
</TextBlock.Visibility>
</TextBlock>
<TextBox x:Name="Email" Background="Transparent"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Потребовалось некоторое время, чтобы найти эту проблему. И у меня совершенно нет идей на данный момент.
У меня есть один пароль для моего пароля, для экрана входа в систему. Но когда я запускаю код для поиска учетных данных, он ничего не возвращает мне. Если я уберу стиль, он решит все проблемы для меня. Кто-нибудь знает, как я могу сохранить Waterstyle и заставить его работать одновременно?
C # Кнопка входа в систему:
private void Button_Click(object sender, RoutedEventArgs e) // Login
{
SqlConnection sqlCon = new SqlConnection(@"Data Source=****;Initial Catalog=LoginDB;Integrated Security=True");
try
{
if (sqlCon.State == System.Data.ConnectionState.Closed)
sqlCon.Open();
string query = "SELECT COUNT(1) FROM tblUser WHERE Username=@UserName AND Password=@Password";
SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
sqlCmd.CommandType = System.Data.CommandType.Text;
sqlCmd.Parameters.AddWithValue("@UserName", Email.Text);
sqlCmd.Parameters.AddWithValue("@Password", Pass.Text);
int count = Convert.ToInt32(sqlCmd.ExecuteScalar());
if (count == 1)
{
Main.Content = new Page1();
Framep.Visibility = Visibility.Visible;
GridS.Visibility = Visibility.Hidden;
}
else
{
MessageBox.Show("Username or password is incorrect");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "App Information");
}
finally
{
sqlCon.Close();
}
}
}
SQL:
go
USE [LoginDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tblUser](
[UserID] [int] NULL,
[UserName] [nvarchar](50) NULL,
[Password] [nvarchar](50) NULL
) ON [PRIMARY]
GO