在一个地方声明的应用程序宽度和高度
Application width and height declared at one place
我有一个包含多个导航页面的 WPF 应用程序。到目前为止,应用程序的高度和宽度是在 MainWindow 和每个页面中声明的。
所以这里是 MainWindow
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="My Application" Height="350" Width="725" >
然后每个页面也有像下面这样的高度和宽度
<Page x:Class="MyApp.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="350" d:DesignWidth="725"
Title="Page1" >
能不能有一个集中的地方我可以有高度和宽度,而不是有这么多地方?
将值保存为资源,然后将每个页面的值绑定到该资源。
编辑:
要将值保存为资源,请在 visual studio 下的属性 window 中,单击宽度(和高度)文本框右侧的小框,然后 select Convert To New Resource
。那里 Select Application Resource
并为该值命名。
为了使用此资源,请设置如下值:
Width = {StaticResource WidthResource}
请注意,您在 Page
中看到的宽度和高度仅供设计人员使用,在编译时将被忽略(通过设置 mc:Ignorable="d"
属性)。
否则您可以将宽度和高度存储为资源,但我不确定这是否真的适用于设计人员
<Application x:Class="SubSetOf.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
StartupUri="MainWindow.xaml">
<Application.Resources>
<sys:Double x:Key="SysHeight">100</sys:Double>
<sys:Double x:Key="SysWidth">200</sys:Double>
</Application.Resources>
</Application>
<Page x:Class="SubSetOf.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="{StaticResource SysHeight}"
d:DesignWidth="{StaticResource SysWidth}"
Height="{StaticResource SysHeight}"
Width="{StaticResource SysWidth}"
Title="Page1">
<Grid>
<TextBox Background="pink"/>
</Grid>
</Page>
我有一个包含多个导航页面的 WPF 应用程序。到目前为止,应用程序的高度和宽度是在 MainWindow 和每个页面中声明的。 所以这里是 MainWindow
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="My Application" Height="350" Width="725" >
然后每个页面也有像下面这样的高度和宽度
<Page x:Class="MyApp.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="350" d:DesignWidth="725"
Title="Page1" >
能不能有一个集中的地方我可以有高度和宽度,而不是有这么多地方?
将值保存为资源,然后将每个页面的值绑定到该资源。
编辑:
要将值保存为资源,请在 visual studio 下的属性 window 中,单击宽度(和高度)文本框右侧的小框,然后 select Convert To New Resource
。那里 Select Application Resource
并为该值命名。
为了使用此资源,请设置如下值:
Width = {StaticResource WidthResource}
请注意,您在 Page
中看到的宽度和高度仅供设计人员使用,在编译时将被忽略(通过设置 mc:Ignorable="d"
属性)。
否则您可以将宽度和高度存储为资源,但我不确定这是否真的适用于设计人员
<Application x:Class="SubSetOf.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
StartupUri="MainWindow.xaml">
<Application.Resources>
<sys:Double x:Key="SysHeight">100</sys:Double>
<sys:Double x:Key="SysWidth">200</sys:Double>
</Application.Resources>
</Application>
<Page x:Class="SubSetOf.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="{StaticResource SysHeight}"
d:DesignWidth="{StaticResource SysWidth}"
Height="{StaticResource SysHeight}"
Width="{StaticResource SysWidth}"
Title="Page1">
<Grid>
<TextBox Background="pink"/>
</Grid>
</Page>