none
По контролу Calendar RRS feed

Ответы

  • Задать то можно, и даже размер компонента изменится, но вот прямоугольник визуально в запущеном приложении вы этого не увидите. Там видимо отрисовка сделана дедовски, по WinForms.

    Я могу ошибаться, но наиболее приемлемы вариант изменить размер отображения по горизонтали, это немного растянуть календарик:

    <Calendar HorizontalAlignment="Left" VerticalAlignment="Top">
        <Calendar.RenderTransform>
            <ScaleTransform ScaleX="2" />
        </Calendar.RenderTransform>
    </Calendar>

    Но при очень сильной диспропорции внешний вид теряется...
    • Помечено в качестве ответа developers_s 25 мая 2012 г. 17:28
    Отвечающий
  • Изучение шаблона Calendar показало что именованная часть PART_MonthView требует элемент Grid и внутри класса делит каждый день недели на конкретную строку и колонку этого Grid, а значит ни замена шаблона не переопределения частей не поможет. Вывод - как и сказал вше Алексей для вашей задачи проще написать собственный контрол с нужным видом и поведением.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Изменено LXGDARKEditor 26 мая 2012 г. 9:46
    • Помечено в качестве ответа Abolmasov Dmitry 29 мая 2012 г. 6:57
    Отвечающий

Все ответы

  • Задать то можно, и даже размер компонента изменится, но вот прямоугольник визуально в запущеном приложении вы этого не увидите. Там видимо отрисовка сделана дедовски, по WinForms.

    Я могу ошибаться, но наиболее приемлемы вариант изменить размер отображения по горизонтали, это немного растянуть календарик:

    <Calendar HorizontalAlignment="Left" VerticalAlignment="Top">
        <Calendar.RenderTransform>
            <ScaleTransform ScaleX="2" />
        </Calendar.RenderTransform>
    </Calendar>

    Но при очень сильной диспропорции внешний вид теряется...
    • Помечено в качестве ответа developers_s 25 мая 2012 г. 17:28
    Отвечающий
  • Спасибо за ответ, но не то. Я поясню (видимо хочу невозможного) Хотелось чтобы Calendar визуально был шире и по высоте меньше. Чтобы дни отображались не по 7 дней, а по 14, или 13 тут исходя из ширины (типа WrapPanel с вложенными днями). Без учёта букв с днями (пн, вт и т.п.) т.е. чисто одни дни. Сверху горит месяц а внизу две строчки в одной 15 чисел, в другой 16 ну и затемненные числа из других месяцев. :) Наверное это никак не сделать. Пробовал уже из стилей шаблонов что-то сваять, но видимо знаний по шаблонам нет - поэтому нет и результата. :)
  • Напишите свой )) Проще будет. На основе той же wrapper панели.

    Отвечающий
  • ...Наверное это никак не сделать...
    Сделать точно можно и тут либо можно обойтись только шаблоном, либо шаблоном с переопределением классов участников шаблона. Если не решите проблему раньше, то может через пару дней чего наваяю в свободное время...

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий
  • Так чем заменять целиком Template, ради одного унаследованного свойства SelectedDate, проще такой контрол с нуля написать. Да и Template-ов придется писать кучу, для выбора дня, месяца, года...

    Отвечающий
  • либо шаблоном с переопределением классов участников шаблона

    Интернет отрубился. Не дописал. Мне чтобы понять даже смысл этого предложения - понадобится пара книжек и пара недель :) не меньше. Я так понимаю шаблоны это что - то как стили. Так что может шаблоны полегче будет. Спасибо.
  • Изучение шаблона Calendar показало что именованная часть PART_MonthView требует элемент Grid и внутри класса делит каждый день недели на конкретную строку и колонку этого Grid, а значит ни замена шаблона не переопределения частей не поможет. Вывод - как и сказал вше Алексей для вашей задачи проще написать собственный контрол с нужным видом и поведением.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Изменено LXGDARKEditor 26 мая 2012 г. 9:46
    • Помечено в качестве ответа Abolmasov Dmitry 29 мая 2012 г. 6:57
    Отвечающий