Member 11559270 Ответов: 1

Как установить формат даты для два datepickers в WPF


привет, у меня есть стиль datepicker, и он применяется к двум элементам управления datepicker(одно и то же окно) с форматом даты dd-MMM-yyyy. Но проблема, с которой я столкнулся, такова. если я выберу один выбор даты, то выбранная дата появится в правильном формате (06-JUL-2017), а если я выберу второй выбор даты, то первый выбор даты fromat изменится на 06-07-2017, а второй формат выбора даты появится правильно...и наоборот... так каково же решение этой проблемы?

Что я уже пробовал:

пытался применить другой стиль к другому датапикеру, но все равно столкнулся с той же проблемой

Erik Rude

Поделитесь своим кодом, если вы хотите получить ответ, отличный от этого типа, Пожалуйста.
Попробуйте сделать так, чтобы он содержал рабочий образец поведения, которое вы получаете (включая стиль и xaml.

Member 11559270

как прикрепить сюда мой примерный проект???

Erik Rude

Вы можете вставить код в Редактор. Если у вас есть небольшой пример кода, который люди могут посмотреть, он будет работать лучше всего.

Member 11559270

//Стиль


&амп;ЛТ;сеттер собственности="OverridesDefaultStyle" значение="истинной" /&ГТ;
&амп;ЛТ;сеттер собственности="переднем плане" значение="#FF01579B" /&ГТ;
&амп;ЛТ;собственность сеттер="строка" значение="УП://применение:,,,/WpfControlLibrary_Common;компонент/шрифты/#робото среды" /&ГТ;
&амп;ЛТ;сеттер собственности="UseLayoutRounding" значение="истинной" /&ГТ;
& amp;lt;Setter Property= "VerticalAlignment" Value= "Center" />
&амп;ЛТ;сеттер собственности="поле HorizontalAlignment" значение="левый" /&ГТ;
& amp;lt;Setter Property= "Template">
& lt;сеттер.Значение>
& lt;ControlTemplate TargetType= "кнопка">
& lt; Canvas Name= " svg2"
Ширина= " 24"
Высота= "24">
& lt;холст.RenderTransform>
& amp;lt;TranslateTransform X= " 0 " Y=" 0 " />
< / холст.RenderTransform>
& amp;lt; холст.Ресурсы / & gt;
& lt; Canvas Name= "layer1">
& lt; Path Name= " SelectionArea"
Data= " M0 0h24v24H0z"
Fill= "прозрачный" />
& amp;lt;Path Name=" GeometryPath "Fill=" #9e9e9e " />
< / холст>
< / холст>
< ControlTemplate.Триггеры>
& amp;lt;Trigger Property="кнопка.Content "Value= "Last">
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="данные" значение="М5.59 7.41L10.18 12л-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z паза" /&ГТ;
< / триггер>
& amp;lt;Trigger Property="кнопка.Content "Value=" Next " >
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="данные" значение="М10 6L8.59 7.41 13.17 12л-4.58 4.59L10 18l6-6z" /&ГТ;
< / триггер>
& amp;lt;Trigger Property="кнопка.Content "Value= "First">
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="данные" значение="М18.41 16.59L13.82 12l4.59-4.59L17 6л-6 6 6 6zM6 6h2v12H6z" /&ГТ;
< / триггер>
& amp;lt;Trigger Property="кнопка.Content "Value= "предыдущий">
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="данные" значение="М15.41 7.41L14 6л-6 6 6 6 1.41-1.41L10.83 12Z с" /&ГТ;
< / триггер>
&амп;ЛТ;триггер свойства="IsMouseOver" значение="истинный"и GT;
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="заполнить" значение="#757575" /&ГТ;
< / триггер>
&амп;ЛТ;триггер свойства="IsPressed" значение="истинный"и GT;
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="заполнить" значение="#616161" /&ГТ;
< / триггер>
& amp;lt;Trigger Property= "IsEnabled" Value= "False">
&амп;ЛТ;сеттер выражение targetname="GeometryPath" собственность="заполнить" значение="#E0E0E0" /&ГТ;
< / триггер>
< / controltemplate.Триггеры>
< / controltemplate>
& lt;/сеттер.Значение>
< / сеттер>


< Color x: Key= "ThemeColors">#ff7fbb
< Color x: Key= "darkBlueColor"> Black
< Color x: Key= "lightBlueColor">#ff7fbb
< Color x: Key= "MFontColor">#FF757575
&ЛТ;solidcolorbrush в Х:ключ="darkBlueSolidBrush" цвет="{darkBlueColor оператора DynamicResource}" /&ГТ;
&ЛТ;solidcolorbrush в Х:ключ="lightBlueSolidBrush" цвет="{lightBlueColor оператора DynamicResource}" /&ГТ;
&ЛТ;solidcolorbrush в Х:ключ="значении themecolor" цвет="{ThemeColors оператора DynamicResource}"/&ГТ;



& amp;lt;Setter Property= " Background"

Erik Rude

Взгляните на некоторые вопросы, на которые есть успешный ответ. Делай то же, что и они. Покажите, что у вас есть, что не работает для вас в вопросе. Вышеприведенный стиль, вероятно, хорош, но что делает ваш код - что вы сделали? И измените его в своем вопросе - не все хотят читать комментарии весь день :)

Member 11559270

мой код был выполнен или нет

Erik Rude

Имеет ли это какое-то отношение к этой линии в стиле? (Попробуйте удалить его, чтобы посмотреть, что произойдет потом)
Data= " M0 0h24v24H0z"
Очень трудно сказать что-либо только из стиля, как я уже говорил раньше. Попробуйте показать, что у вас происходит (код) и как это не работает.

Member 11559270

нет, теперь он работает нормально... у меня есть солн для этого

1 Ответов

Рейтинг:
1

Member 10406401

Попробуйте использовать ниже приведенный стиль для DatePickerTextBox вместо меню выбора даты.

<Style TargetType="{x:Type DatePickerTextBox}">
                <Setter Property="Control.Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <TextBox BorderThickness="0" Style="{x:Null}" x:Name="PART_TextBox"
     Text="{Binding Path=SelectedDate, StringFormat='dd-MMM-yyyy', 
     RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>


Надеюсь, это поможет.