WPF应用程序中的常见布局
本文关键字:常见 布局 应用程序 WPF | 更新日期: 2023-09-27 18:28:00
我是WPF的新手,正在创建一个应用程序,我想在其中制作一个可以应用于所有窗口的通用布局。我希望在所有窗口上都能使用几个按钮和窗口属性。
如果可能的话,请帮忙。我找不到任何解释这类功能的链接或来源。
非常感谢
*****编辑***
我使用的代码显示了窗口上的一个按钮。我不想把它写在所有的窗户上。我想把它放在基类/父类中,这样它就会出现在我添加到项目中并从基类/父级继承的所有窗口上。
但是怎么做呢?我几乎不知道。感谢您的帮助。
<Controls:MetroWindow.RightWindowCommands>
<Controls:WindowCommands>
<Button Content="settings" Name="Settings" Click="Settings_Click" />
<Button>
<StackPanel Orientation="Horizontal">
<Rectangle Width="20" Height="20" Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_cupcake}" />
</Rectangle.OpacityMask>
</Rectangle>
<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="test" />
</StackPanel>
</Button>
</Controls:WindowCommands>
</Controls:MetroWindow.RightWindowCommands>
是的,你可以做到。有一个术语叫做UserControl,你必须编写自己的UserControl。
有关如何编写可重复使用的UserControl的基本信息。检查给定的链路
这不是你想要的控制。。但是您可以了解如何编写UserControl..:)
要为整个应用程序创建一个通用主题,您应该关注样式和共享资源的方向,请参阅此处http://msdn.microsoft.com/en-us/library/ms745683(v=vs.110).aspx
或者你可以使用现成的主题,比如这里http://wpfthemes.codeplex.com/
编辑
您可以通过将应在所有窗口中使用的通用控件移动到一个单独的UserControl来实现这一点。那么你会有这样的smth:
用户控制
<StackPanel>
<Button Content="settings" Name="Settings" />
<Button>
<StackPanel Orientation="Horizontal">
<Rectangle Width="20" Height="20" Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" />
</Rectangle.OpacityMask>
</Rectangle>
<TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="test" />
</StackPanel>
</Button>
</StackPanel>
然后,在所有需要这些控件的窗口中,您应该添加此控件,如下所示:
<local:UserControl1 x:Name="myCtrl"></local:UserControl1>
其中local是定义UserControl1的命名空间。