wpf 一个仿iphone滑动开关

今天闲来无事,做个防iphone的滑动开关玩玩,美工底子比较差,不好看大家多多包涵。

效果如图,主要是一个dayview和monthview切换的按钮。

刚刚学习wpf 所以做的方法可能比较土。闲话不说上代码

前台xaml代码

<Window x:Class="_20111210_Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SizeChanged="Window_SizeChanged" Loaded="Window_Loaded"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style x:Key="normal" TargetType="Border">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="30"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF9FABD6" Offset="0" />
<GradientStop Color="#FF90AAF0" Offset="1" />
<GradientStop Color="#CF7B7BB8" Offset="0.411" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="selected" TargetType="Border">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="30"/>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFA3AECA" Offset="0" />
<GradientStop Color="#FFC2C2DF" Offset="0.383" />
<GradientStop Color="#FF106BFF" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource normal}" x:Name="DaySwitcher" MouseLeftButtonUp="DaySwitcher_MouseLeftButtonUp">
<Border.CornerRadius>
<CornerRadius TopLeft="5" BottomLeft="5"/>
</Border.CornerRadius>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="#FF444242">
<Run>Day</Run>
</TextBlock>
</Border>
<Border Style="{StaticResource selected}" x:Name="MonthSwitcher" MouseLeftButtonUp="MonthSwitcher_MouseLeftButtonUp">
<Border.CornerRadius>
<CornerRadius TopRight="5" BottomRight="5"/>
</Border.CornerRadius>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Run>Month</Run>
</TextBlock>
</Border>
</StackPanel>
</Window>

在资源里定义了两个style 一个叫normal 一个叫selected

然后就是单击切换事件

后台处理代码比较简单

private void DaySwitcher_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Border b = sender as Border;
b.Style = this.FindResource("selected") as Style;
MonthSwitcher.Style = this.FindResource("normal") as Style;

}

private void MonthSwitcher_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Border b = sender as Border;
b.Style = this.FindResource("selected") as Style;
DaySwitcher.Style = this.FindResource("normal") as Style;
}




转载于:https://www.cnblogs.com/lhx880619/archive/2011/12/26/2302657.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值