WM6 .Net Эффекты формы C #

2

Я хотел бы знать, возможно ли создавать приятные эффекты формы для компактной структуры.

Мой план состоит в том, что, когда пользователь выбирает изображение в основной форме, это открывается в новой форме, это в настоящее время работает. Теперь я хочу сделать форму, содержащую полноразмерное изображение, чтобы загрузить край (слева или справа) экрана на высоте около 4 пикселей, а затем перейти в режим просмотра. Как только форма будет полностью на экране, разверните высоту, пока она не достигнет максимума для экрана.

При закрытии я хотел бы уменьшить высоту до 4 пикселей в высоту и соскользнуть с края до удаления формы.

Я пробовал код ниже при создании экземпляра формы, и свойство dp.Top всегда было 0 независимо от dp.Width == 240

DisplayPicture dp = new DisplayPicture(ImageUrl);
dp.WindowState = FormWindowState.Normal;
dp.Left = dp.Width * -1;
dp.Top = (dp.Height / 2) - 2;
dp.Height = 4;
dp.ShowDialog();       

В форме DisplayPicture у меня также есть следующее, чтобы попытаться переместить форму, но поскольку она не устанавливает свойство Top, этот код еще не имеет значения.

void t_Tick(object sender, EventArgs e)
{
    if (this.Left < 0)
        this.Left += 5;

    if (this.Left > -1)
    {
        this.Left = 0;
        if (this.Height < pictureBox1.ClientRectangle.Height)
        {
            this.Height += 4;
            this.Top -= 2;
        }

        if ((this.Left == 0) && (this.Top == 0))
            t.Enabled = false;

    }
}

Любая помощь будет принята с благодарностью!

ТИА

Oneshot

Теги:
effects
windows-mobile-6

1 ответ

1
Лучший ответ

Чтобы сделать это, начните с элемента управления PictureBox, в котором загружено изображение. Установите высоту в 4, ширину в ширину вашей формы и (очень важно) установите SizeMode в PictureBox на StretchImage.

Затем поместите PictureBox с экрана, установив Top to 0 и Left to -Width. Поместите таймер в свою форму с интервалом в 100 (или что-то еще), и его событие постепенно перемещает PictureBox вправо до тех пор, пока его свойство Left не станет 0. Когда вы достигнете этой точки, время таймера постепенно увеличит высоту, пока он достигает высоты формы.

Вам, вероятно, придется иметь дело с мерцанием, но это должно заставить вас начать.

Обновление. Я просто прочитал ваш вопрос немного ближе и понял, что вы действительно хотите перенести форму с экрана на полный экран. Это невозможно, если вы хотите, чтобы вся форма (включая верхнюю строку заголовка) отображалась таким образом, но вы можете сделать это, установив форму FormBorderStyle (или, я думаю, это просто называется BorderStyle в Compact Framework) к Нет. Если BorderStyle установлен в None, изменение свойств Height, Width, Top и Left действительно окажет заметное влияние на форму (хотя форма будет без полей). Эти свойства полностью игнорируются в Windows Mobile, поэтому, вероятно, ваш код ничего не делает.

Обновление 2: вот мой ответ на аналогичный вопрос WM, который может помочь вам сделать ваше анимированное окно похожим на реальное окно.

  • 0
    Пятно на! Спасибо, это был стиль Border, который останавливал код!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню