2010-03-04 30 views
5

Tôi đang viết một ứng dụng để sử dụng cá nhân sẽ theo dõi mức độ thường xuyên tôi tiếp cận đối với con chuột và sẽ giữ một bộ đếm thời gian tôi đã mất tích. Khi tôi sử dụng chuột, tôi muốn nó rung không gian làm việc trên máy tính để bàn của tôi trong một giây như một hành động tăng cường âm.Tôi có thể lắc máy tính để bàn của người dùng bằng WPF không?

Ứng dụng sẽ được gọi là WristSlap và sẽ có trên github ngay sau khi tôi có sẵn phiên bản 0,1.

+0

Thêm câu trả lời đó và tôi sẽ đánh dấu câu trả lời là câu trả lời được chấp nhận. –

Trả lời

4

Danny đang làm gì đó với ý tưởng cửa sổ trong suốt. Nhưng nó không phải minh bạch. Bạn sẽ phải chấp nhận một số hạn chế nhất định mặc dù.

Bạn muốn grab a screen shot màn hình nền và áp dụng nó vào cửa sổ WPF toàn màn hình. (Hãy xem blog của tôi để có một FullScreenBehavior tiện dụng cho Cửa sổ WPF). Sau đó, bạn sẽ chỉ áp dụng một số hoạt ảnh động kinh gây ra một chuyển đổi bố cục dịch trên phần tử gốc. Điều này sẽ cho hiệu ứng lắc. Ở cuối cửa sổ có thể đóng lại.

Kể từ khi hoạt ảnh, tọa độ của mọi thứ sẽ ở khắp nơi, bạn có thể không muốn bị làm phiền khi cố gắng dịch các lần nhấp chuột trên màn hình di chuyển sang điều khiển nằm bên dưới. Nếu hoạt ảnh đủ ngắn thì nó sẽ không thành vấn đề vì bạn sẽ không có thời gian để cố bấm vào bất cứ thứ gì trong khi nó đang rung.

Để thực tế hơn, bạn có thể xem xét sử dụng DWM (Desktop Window Manager) để hiển thị chế độ xem "trực tiếp" của màn hình nhưng có lẽ không đáng giá đặc biệt nếu bạn giữ hoạt ảnh rất ngắn.

Tôi gần như muốn tự mình thử làm điều này.

Tôi đã nghĩ ra điều này bằng cách sử dụng hình ảnh tĩnh ngay bây giờ. Đó là ok nhưng nó có thể được cải thiện.

<Image Source="Slide1.png" Stretch="UniformToFill"> 

<Image.Effect> 
    <BlurEffect Radius="5" /> 
</Image.Effect> 

<Image.RenderTransform> 
    <TranslateTransform Y="0" X="0"/> 
</Image.RenderTransform> 

<Image.Triggers> 
    <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
    <BeginStoryboard> 
     <Storyboard RepeatBehavior="00:00:01" SpeedRatio="15"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="-10"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="10"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.7000000" Value="0"/> 
     </DoubleAnimationUsingKeyFrames> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)"> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="-10"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="-10"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="10"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.7000000" Value="10"/> 
      <SplineDoubleKeyFrame KeyTime="00:00:00.9000000" Value="0"/> 
     </DoubleAnimationUsingKeyFrames> 
     </Storyboard> 
    </BeginStoryboard> 
    </EventTrigger> 
</Image.Triggers> 

</Image> 
+0

Điều này thực sự âm thanh một chút ác (không có hành vi phạm tội, nó là thú vị về mặt kỹ thuật nói). Hãy tưởng tượng các ứng dụng chống vi rút giả mạo thực hiện điều này để ngăn bạn rời khỏi cửa sổ của chúng. – Riddari

+1

Đó là lý do tại sao ứng dụng web Silverlight sẽ không cho phép bạn tạo các cửa sổ toàn màn hình chấp nhận đầu vào bàn phím. Nhưng đây là về WPF có toàn quyền truy cập vào Windows API để hiển thị một cửa sổ toàn màn hình không phải là một mối quan tâm. Nếu một ứng dụng WPF đang chạy trên máy tính của bạn thì nó có thể đã làm bất cứ điều gì nó muốn. Đó là những gì mà Control + Alt + Delete sắp xếp. – Josh

+0

FYI, Silverlight 4 sẽ có một số tính năng nhập bằng bàn phím ở chế độ toàn màn hình. – Gabe

1

Bạn có thể tạo cửa sổ trong suốt với hiệu ứng đổ bóng xoay thay đổi.

Tôi không chắc chắn sẽ giải quyết vấn đề nghiện máy tính của bạn.

+0

Nó không phải là nghiện cho máy tính tôi đang cố gắng để lắc. Tôi đang cố gắng làm một cái gì đó khiến tôi sử dụng chuột ít thường xuyên hơn và sử dụng bàn phím nhiều hơn. –

+0

Sau đó thử một mini mini Logitech. –

Các vấn đề liên quan