我想将我的应用程序设置为桌面级别,如Windows Gadgets.这有可能实现吗?
事实是,我有无边界应用程序,我想在桌面上运行.
我试图找到这个选项,但我发现只有"总是在顶部",这与我想要达到的目标相反.
我发现实际上有两种方法可以使用mvvm模式处理控件上的鼠标事件.
两种方式实际上都是1种方式:
MVVM Light Toolkit http://mvvmlight.codeplex.com/
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand
Command="{Binding SelectionChangedCommand}"
CommandParameter="{Binding SelectedItems,
ElementName=MyDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)
和Blend interactivity.dll与行为
<i:Interaction.Triggers>
<i:EventTrigger EventName=”MouseLeftButtonDown”>
<Behaviours:ExecuteCommandAction Command=”{Binding MyCommand}” CommandParameter=”{Binding MyCommandParameter}”/>
</i:EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)
你知道更好的方法吗?
主持人:为什么我的最后6个xaml代码行根本不可见?它们被IE和Iron浏览器吞噬.您能否报告管理员修复该代码脚本?它经常不起作用.证明:http://img251.imageshack.us/img251/5236/errorxt.png
我正在做一个Wpf应用程序,我用眼睛的形状创建一个控件,我在画布中放置一个椭圆(眼睛),我的目的是当鼠标的光标进入画布时,椭圆跟随鼠标的光标.你有什么建议如何执行这项任务?非常感谢您的关注.
干杯
我在Xaml中更新了我的代码:
<Window Height="480" Title="Window2" Width="640" x:Class="WpfApplication5.Window2"
x:Name="Window" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<Storyboard x:Key="OnLoaded1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="ctrCircle"
Storyboard.TargetProperty="(UIElement.RenderTransform).( TransformGroup.Children)[3].(TranslateTransform.X)">
<EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="1">
<EasingDoubleKeyFrame.EasingFunction>
<ExponentialEase EasingMode="EaseOut" />
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="ctrCircle"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
<EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="1">
<EasingDoubleKeyFrame.EasingFunction>
<ExponentialEase EasingMode="EaseOut" />
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Style TargetType="Ellipse">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</Setter.Value>
</Setter>
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
</Style>
</Window.Resources>
<Canvas MouseMove="mov" x:Name="LayoutRoot">
<Border ackground="Black" B="" Canvas.Left="178" Canvas.Top="103"
CornerRadius="250" Height="255.5" Width="290" x:Name="border_eye">
<Ellipse Fill="#FFFFC600" Height="12" HorizontalAlignment="Left"
Margin="0" RenderTransformOrigin="0.5,0.5" Stroke="{x:Null}"
VerticalAlignment="Center" Visibility="Visible" Width="12" …Run Code Online (Sandbox Code Playgroud) 在a Slider中插入Grid会扩展它以填充可用空间,但我不希望使用网格,原因如下:
我有一个TextBlock和Slider在UserControl,滑块装有弹簧,做慢跑/穿梭; 必须显示当前值,因为用户不能依赖中性光标的位置,所以文本块.实现**Orientation**这个自定义滑块的属性需要旋转两个组件,并调整它们的相对位置(左/右或上/下),这对于网格来说并不容易(除非我错过了明显的东西)用一个StackPanel.
回应Aviad的评论
Aviad,谢谢,我为痛苦道歉;-)问题出现在标题中:当滑块位于StackPanel内时,如何扩展Slider以填充可用空间?
这个用户控件:
<UserControl x:Class="XXX.Preview.SelectionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="auto" Width="auto">
<GroupBox Header="Selected">
<StackPanel Orientation="Horizontal">
<TextBlock/>
<Slider/>
</StackPanel>
</GroupBox>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
即使在具有"*"宽度的行中,也不会在包含在网格中时展开.滑块根本没有长度.
一个解决方案是在下面的代码中用网格替换堆栈面板,但我不想使用网格,因为我需要使用堆栈面板的Orientation属性来显示封闭用户控件时垂直堆叠的控件在方向"垂直"中设置.