Vuoi le buone notizie o le cattive notizie?
La buona notizia è che Microsoft dice che questo problema è stato risolto nella versione Feb 2010 del WPFToolkit. E ha.
La cattiva notizia è che, anche se il valore di impostazione IsEnabled di un DatePicker su "True" sarà abilitare il DatePicker, in modo da possibile ora fare clic sul pulsante Calendario per scegliere la data, sarà ancora guardare disattivato .
"Bug"? Ho detto la parola "bug"?
Ovviamente no.
è possibile aggirare questo problema applicando una <Style>
però.
seguito alcune semplice codice XAML per dimostrare.
Visualizza due righe, ciascuna contenente un CheckBox e un DatePicker. Quando si fa clic su un CheckBox in una riga, dovrebbe abilitare DatePicker in quella riga.
Questo mostra la differenza tra un DatePicker senza stile (nella prima fila), e un DatePicker con uno stile (in seconda fila).

Entrambi datepickers Do ottenere abilitato/disabilitato in modo corretto, ma quello in prima fila non sembra come se fosse. DatePicker nella seconda riga utilizza uno Style
per mostrare all'utente quando è disabilitato.
Nota come questo codice imposta lo sfondo sia del controllo DatePicker
sia della parte DatePickerTextBox
di esso.
<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>
Spero che l'aiuto!
E spero che sia corretto corretto nella prossima versione di WPFtoolkit. Gli utenti si sono lamentati di questo problema dal 2009 ...
fonte
2010-09-02 08:46:04
Hai trovato una soluzione a questo problema? –
No, tutto quello che posso dire è che succede sul mio desktop, ma non sul mio portatile, l'ho notato l'altro giorno quindi non è su tutte le macchine. – Jonathan
Posso confermare che sono in grado di riprodurre anche questo problema. Non ho ancora testato DatePicker rilasciato in .NET 4.0, presumo che non avremo questo problema anche se potrebbe. – jpierson