Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анимация лейбы 
:(
    Опции темы
Diksa
Дата 5.2.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 21.10.2008

Репутация: нет
Всего: нет



Вот создал стиль который подключаю к лейбелу
Код

  </Style>
        <!--Стил лейбы -->
        <Style x:Key="LabBreathe">
            <Style.Triggers>
                <Trigger Property="TextBlock.Visibility" Value="Visible">
                    <Trigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation 
                                     Storyboard.TargetProperty="FontSize"
                                     From="14" To="14.5" Duration="0:0:2" 
                                     AutoReverse="True" RepeatBehavior="Forever">
                                </DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.EnterActions>
                </Trigger>
            </Style.Triggers>
        </Style>


В итоге когда запускаю все работает но.... в процессы загружается файл PresentationFontCache.exe и как только анимация начинает работать обем этого файла постоянно увеличивается пока не подвиснет ПК, и даже если программу закрть он всеравно остается в процесах. Так вот может надо както выгружать его или что-то в этом роде?
Подскажите пожалуйста в чем дело, заранее благодарю!! 

Это сообщение отредактировал(а) Diksa - 5.2.2009, 16:31
PM MAIL   Вверх
-Mikle-
Дата 25.2.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Понятно что ты хотел сделать плавающий в размерах текст.

Не могу сказать в чем дело, так как не знаю точно как работает это самое кэширование шрифтов. 
Возможно дело в том, что DoubleAnimation выдает очень точные (не округленные) значения и они не повторяются "один-в-один" в каждом из полных циклов анимации. 
То есть, напримет такие:
14. 0433, 14.102, 14.2333, 14.352, 14.4984, 14.576, 14.463, 14.3565, 14.2565, 14.1373
14. 0351, 14.124, 14.2563, 14.364, 14.4654, 14.575, 14.476, 14.3523, 14.2343, 14.1532
Только на самом деле, точность после запятой у double намного выше и разброс значений намного больше.

Кэшер, вероятно, предназначен для того, чтобы хранить созданные когда-либо, шрифты и выдавать их, если запрашивается существующий шрифт или создавать новый, если запрашиваемого шрифта нет в кэше. Шрифт, вероятно, считается существующим, если совпадают на полное равенство все его свойства, в том числе и размер. Вероятно, кэшер, не округляет значения размера шрифта и поэтому каждый раз при запросе шрифта с таким вот точным размером не находит его у себя, а потому создает новый и добавляет к себе, и потому растет все время. Представляю себе количество шрифтов, которые он создаст за несколько минут. Подвиснет, даже не вопрос, во время поиска. Это все мое предположение, может я не прав, но очень похоже что прав.

Что же теперь делать?
Ну первое, это отказаться НАВСЕГДА от такой анимации через размер шрифта.
А второе, использовать для подобных целей трансформацию (RenderTransform или LayoutTransform)

Best Regards!



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0678 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.