xaml文件
<!-- splitter控件 -->
<StackPanel x:Name="SplitterStackPanel" Style="{StaticResource SplitterStackPanelStyle}"
Loaded="SplitterStackPanel_Loaded" SizeChanged="SplitterStackPanel_SizeChanged">
<!-- Left -->
<Grid Style="{StaticResource SplitterC1GridStyle}">
<!-- TODO -->
<Button x:Name="Btn_Test" Content="btn" Click="Button_Click"
Margin="20,6,0,0" Height="25"
VerticalAlignment="Top" HorizontalAlignment="Left" Width="130" />
</Grid>
<!-- Split -->
<StackPanel Style="{StaticResource SplitterC2StackPanelStyle}">
<HyperlinkButton Name="Btn_Splitter" Click="Btn_Splitter_Click"
IsTabStop="False" VerticalAlignment="Center" Padding="0">
<Image Name="SplitIcon" Height="35" Width="7" />
</HyperlinkButton>
</StackPanel>
<!-- Right -->
<Grid Style="{StaticResource SplitterC3GridStyle}">
<!-- TODO -->
<navigation:Frame x:Name="ChildContentFrame" />
</Grid>
</StackPanel>
后台代码:
private void Btn_Splitter_Click(object sender, RoutedEventArgs e)
{
double ContainerWidth = SplitterStackPanel.ActualWidth;
Grid NavPanel = SplitterStackPanel.Children[0] as Grid;
StackPanel SplitPanel = SplitterStackPanel.Children[1] as StackPanel;
Grid ContentPanel = SplitterStackPanel.Children[2] as Grid;
if (NavPanel.Visibility.Equals(Visibility.Collapsed))
{
NavPanel.Visibility = Visibility.Visible;
ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth - NavPanel.ActualWidth;
SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-left.png", UriKind.Relative));
}
else
{
NavPanel.Visibility = Visibility.Collapsed;
ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth;
SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-right.png", UriKind.Relative));
}
SplitPanel.Height = SplitterStackPanel.ActualHeight;
}
private void SplitterStackPanel_Loaded(object sender, RoutedEventArgs e)
{
InitialSplitterSize();
}
DateTime oldTime = DateTime.MinValue;
private void SplitterStackPanel_SizeChanged(object sender, SizeChangedEventArgs e)
{
TimeSpan sjc = DateTime.Now.Subtract(oldTime);
if (sjc.TotalSeconds > 1)
{
InitialSplitterSize();
oldTime = DateTime.Now;
}
}
private void InitialSplitterSize()
{
double ContainerWidth = SplitterStackPanel.ActualWidth;
Grid NavPanel = SplitterStackPanel.Children[0] as Grid;
StackPanel SplitPanel = SplitterStackPanel.Children[1] as StackPanel;
Grid ContentPanel = SplitterStackPanel.Children[2] as Grid;
if (NavPanel.Visibility.Equals(Visibility.Collapsed))
{
ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth;
SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-right.png", UriKind.Relative));
}
else
{
ContentPanel.Width = ContainerWidth - SplitPanel.ActualWidth - NavPanel.ActualWidth;
SplitIcon.Source = new BitmapImage(new Uri("/CQDSCC;component/Images/mini-left.png", UriKind.Relative));
}
SplitPanel.Height = SplitterStackPanel.ActualHeight;
}
样式文件:
<!-- Splitter StackPanel-->
<Style x:Key="SplitterStackPanelStyle" TargetType="StackPanel">
<Setter Property="Orientation" Value="Horizontal" />
</Style>
<Style x:Key="SplitterC1GridStyle" TargetType="Grid">
<Setter Property="Width" Value="200" />
<Setter Property="HorizontalAlignment" Value="Left" />
</Style>
<Style x:Key="SplitterC2StackPanelStyle" TargetType="StackPanel">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Orientation" Value="Horizontal" />
<Setter Property="Width" Value="6" />
<Setter Property="Background" Value="#ffe2e2e2" />
</Style>
<Style x:Key="SplitterC3GridStyle" TargetType="Grid">
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
- 大小: 3.5 KB
- 大小: 3.5 KB
分享到:
相关推荐
一个SilverLight4实现右键菜单效果的实例
Silverlight动感小菜单源码 网页应用受限于自身的浏览器范畴,不能把华丽效果完全展示,正是因为如此,在网页上诞生了无数绚丽的设计,虽然动感程度和桌面应用无法比拟,但是在UI上却下足了功夫,用户体验可以说...
一款Silverlight下开发的导航菜单,内置技术说明和源码 对于学习和实际应用都很有帮助
silverlight动画 Menu菜单效果! silverlight动画 Menu菜单效果! silverlight动画 Menu菜单效果!
Silverlight树形菜单[带图标] silverlight 退出系统(关闭当前网页),通过调用JS
右击一次就出来一次菜单,与SilverLight Toolkit中的不一样
silverlight菜单控件,很实用的自定义菜单控件
Silverlight打开右键菜单Demo
silverlight读取xml生成无线级菜单,采取MVVM模式
这个是自己做的一个二级菜单,刚刚学,只是为了给自己保存一下而已,不过效果还行,就是代码太乱了
一个很好看的silverlight菜单,建议大家看看
Silverlight3鱼眼菜单控件Demo
Silverlight做的菜单,鼠标滑动弹出
SilverLight DataGrid主从表折叠显示、全选、多选、选项删除、排序
silverlight toolkit中的主题(theme)应用、SilverLight 桌面文件夹效果源码...Silverlight动感小菜单源码、Silverlight分页源码、Silverlight进度条源码、Silverlight密码强度验证源码、Silverlight模仿Google的自定义...
看到很多IT同行找silverlight4的菜单控件,正好我写过一个,这个控件使用ContentControl.Content属性放置菜单内容,所以非常灵活。 控件不需要许可,随便使用。
silverlight程序菜单详细例子,好看的菜单
在网上找到的好东西,拿出来分享一下..........
在网上找了不少但都用不了,不过这个绝对能用,分享了,呵呵!