【发布时间】:2010-10-06 17:48:42
【问题描述】:
我有这样定义的 WPF 窗口样式:
<Style
x:Key="Applet"
TargetType="{x:Type Window}">
<Setter
Property="WindowStyle"
Value="None" />
<Setter
Property="WindowState"
Value="Maximized" />
<Setter
Property="Title"
Value="Hindenburg" />
<Setter
Property="FontFamily"
Value="Arial" />
<Setter
Property="Height"
Value="650" />
<Setter
Property="Width"
Value="850" />
</Style>
然后我的应用程序使用这种样式定义了几个屏幕(FlowWindow 只是从 Window 派生而来的,带有一些额外的位):
<uControl:FlowWindow
x:Class="KaleidoscopeApplication.DisposablesScan"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="clr-namespace:KaleidoscopeApplication"
xmlns:uControl="clr-namespace:KaleidoscopeApplication.Controls"
Style="{StaticResource Applet}"
Loaded="disposablesScanWindow_Loaded"
Unloaded="disposablesScanWindow_Unloaded">
<Canvas>
<!-- Top Bar Background -->
<Image
Source="Resources/Elements/Backgrounds/16.png" />
text etc etc...
</Canvas>
我的问题 - 我如何定义一个将显示在每个使用此样式的窗口上的文本块?例如,如果我想在每个屏幕的右上角显示一个徽标...
由于样式定义了诸如大小和字体之类的东西,而不是画布的内容,我不知道该怎么做。
提前致谢!
编辑:FlowWindow 不是用户控件。它只是我 KaleidoscopeApplication.Controls 命名空间的一部分。定义为:
public class FlowWindow : Window
{
public FlowWindow()
: base()
{ }
/// <summary>
/// Transition smoothly to another FlowWindow.
/// </summary>
/// <param name="toWindow">The window to transtion to.</param>
public override void Transition(FlowWindow toWindow)
{
...
}
}
【问题讨论】:
-
构成 FlowWindow 的“额外位”是什么?这真的是一个用户控件(正如您的前缀所暗示的那样),还是实际上是一个自定义控件,具有关联的 generic.xaml 文件?
-
添加了一些关于 FlowWindow 的信息...