Перетащите окно wpf большим пальцем: оно может быть прозрачным? - PullRequest
3 голосов
/ 09 марта 2009

Я тестировал Blu и заметил, что могу перетащить окно. Это окно прозрачное. Я пытался сделать то же самое с большим пальцем, но я не знаю, как сделать его прозрачным. Остальная часть окна прозрачна, но большой палец - нет.

Есть ли способ сделать большой палец прозрачным, или я должен использовать другую технику?

Я использую это событие:

 private void DragThumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
    {
        Canvas.SetLeft(this, Canvas.GetLeft(this) + e.HorizontalChange);
        Canvas.SetTop(this, Canvas.GetTop(this) + e.VerticalChange);
    }

Спасибо

Ответы [ 2 ]

8 голосов
/ 10 марта 2009

Вы можете сделать элемент управления большим пальцем невидимым с помощью атрибута Непрозрачность.

Непрозрачность = "1" (полная видимость)

или

Непрозрачность = "0" (не видно)

Образец из моей заявки

        <Thumb Name="myThumb"
               Width="10"
               Height="10"
               DragDelta="onDragDelta"
               DragStarted="onDragStarted"
               DragCompleted="onDragCompleted"
               Margin="5"
               HorizontalAlignment="Right"
               Opacity="1">

        </Thumb>
5 голосов
/ 09 марта 2009

Не уверен, правильно ли я понимаю ваш вопрос, но чтобы перетащить окно wpf, все, что вам нужно ввести в обработчик события click компонента в форме (или самой форме), это:

this.DragMove();

Нет необходимости реализовывать функцию перетаскивания самостоятельно.


Обновление: маленький пример: создайте окно, поместите в него кнопку. Подключите MouseDown окна и нажмите кнопку как:

    private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
    this.DragMove();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("hey");
}

Работает отлично, вы можете перетащить окно, а кнопка продолжает работать ...

...