¿Quieres las buenas o las malas noticias?
La buena noticia es que Microsoft dice que este problema se ha solucionado en la versión de febrero de 2010 de WPFToolkit. Y tiene.
La mala noticia es que, aunque el valor de ajuste IsEnabled de un DatePicker en "True" se permitir que el Selector de fechas, por lo que puede Ahora haga clic en el botón de calendario para seleccionar una fecha, todavía mirar discapacitados .
"Error"? ¿Dije la palabra "error"?
Por supuesto que no.
Puede solucionar este problema aplicando <Style>
.
A continuación se muestra un código xaml simple para demostrar.
Muestra dos filas, cada una conteniendo un CheckBox y un DatePicker. Cuando hace clic en una casilla de verificación en una fila, debería habilitar el DatePicker en esa fila.
Esto muestra la diferencia entre un DatePicker sin un estilo (en la primera fila) y un DatePicker con un estilo (en la segunda fila).

Ambos datepickers do conseguir activado/desactivado correctamente, pero el que está en la primera fila no parece que lo es. DatePicker en la segunda fila usa un Style
para mostrar al usuario cuando está deshabilitado.
Observe cómo este código establece el Fondo del control DatePicker
y de la parte DatePickerTextBox
.
<Window x:Class="WPFDatePickerTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpf="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
xmlns:primitives="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"
Title="Window1" Height="317" Width="461">
<Window.Resources>
<Style TargetType="{x:Type primitives:DatePickerTextBox}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Transparent"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="DatePickerStyle1" TargetType="{x:Type wpf:DatePicker}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{x:Static SystemColors.InactiveBorderBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<StackPanel>
<WrapPanel>
<CheckBox Height="16" Name="cbDateOfJoining" Width="120">Date of joining</CheckBox>
<wpf:DatePicker Height="25"
Name="datePicker1"
Width="140"
IsEnabled="{Binding IsChecked, ElementName=cbDateOfJoining}" />
</WrapPanel>
<WrapPanel>
<CheckBox Height="16" Name="cbDateOfLeaving" Width="120">Date of leaving</CheckBox>
<wpf:DatePicker Height="25"
Name="datePicker2"
Width="140"
IsEnabled="{Binding IsChecked, ElementName=cbDateOfLeaving}"
Style="{DynamicResource DatePickerStyle1}" />
</WrapPanel>
</StackPanel>
</Grid>
</Window>
Hope the helps!
Y espero que sea correctamente corregido en la próxima versión de WPFtoolkit. Los usuarios se han quejado de este problema desde 2009 ...
¿Ha encontrado una solución a este problema? –
No, todo lo que puedo decir es que sucede en mi computadora de escritorio, pero no en mi computadora portátil, me di cuenta de esto el otro día, así que no está en todas las máquinas. – Jonathan
Puedo confirmar que soy capaz de reproducir este problema también. No he probado el DatePicker lanzado en .NET 4.0, supongo que uno no tendrá este problema, aunque podría ser. – jpierson