我有一个令人沮丧的问题,我非常感谢一些帮助.我在ViewBox中有一个ListView,我无法让ListView中的项目水平拉伸.
这是XAML:
<Window x:Class="WpfApplication3.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication3"
Title="Window1">
<Window.Resources>
<local:Inning x:Key="inning">
<local:Inning.Skins>
<local:Skin SkinNumber="1"></local:Skin>
<local:Skin SkinNumber="2"></local:Skin>
<local:Skin SkinNumber="3"></local:Skin>
</local:Inning.Skins>
</local:Inning>
</Window.Resources>
<Grid DataContext="{StaticResource inning}">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Background="Black"
Text="SKINS"
Foreground="White"
FontSize="80"
FontWeight="Bold"
HorizontalAlignment="Center"></TextBlock>
<Grid Margin="2"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Viewbox>
<ListView Name="lvSkinNumbers"
ItemsSource="{Binding Skins}"
HorizontalAlignment="Stretch"
Background="Black"
VerticalAlignment="Stretch"
VerticalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="250"
VerticalAlignment="Stretch"
LineStackingStrategy="BlockLineHeight"
Margin="2"
TextAlignment="Center"
HorizontalAlignment="Stretch"
Background="Black"
Foreground="White"
Text="{Binding SkinNumber}"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Viewbox>
<Viewbox Grid.Column="1">
<ListView Name="lvFirstInningSkins" …
Run Code Online (Sandbox Code Playgroud) 不确定我在这里的内容是否可以通过aspnet_compiler.exe工具实现,但是这里是:
我们有一个网站,我们允许用户修改母版页 - 或者说,我们不允许他们直接修改它们,我们给他们一个减少的"标记"样式语言,他们可以用来修改它们这些页面的HTML,所以他们可以基本上"皮肤"该网站看起来像他们自己的前端.
我渴望通过预编译视图和aspx页面来尝试优化网站.但我希望那些视图和页面使用的布局和母版页保持可更新.但是,我无法让它工作......
假设我们有以下aspx页面:
<%@ Page Title="Hello World" MasterPageFile="~/Skinable/Skin.Master" Language="C#" AutoEventWireup="true" CodeBehind="HelloWorld.aspx.cs" Inherits="Project.HelloWorld" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Content" Runat="server">
Hello World!
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
它引用母版页文件Skin.Master
中Skinable
的文件夹. Skin.Master
需要可更新.这是我尝试过的:
如果我只是使用此aspnet_compiler.exe命令编译站点,那么主页面也会被编译,并且不可更新:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -v / -p d:\SourceFolder d:\CompiledSite
如果我-x Skinable
在aspnet_compiler.exe中排除了可换肤文件夹(添加到命令),那么该文件夹不会被复制到输出文件夹,但主页仍然被编译到bin文件夹(即,skin.master.compiled
文件生成到构建中)夹).当我们将母版页复制到部署文件夹时,对该文件的更改将被忽略(它只是在编译时使用了母版页).
如果我在运行aspnet_compiler(attrib
+h d:\SourceFolder\Skinable
)之前隐藏了Skinable文件夹,那么我得到与上面相同的结果(即通过-x标志排除时)
如果我在运行aspnet_compiler.exe时指定-u标志(Updatable),那么,我不确定它的优点是诚实的,因为似乎没有在该实例中编译,因此编译即时进行当你要求一个页面时,重点是什么......
最后,如果我允许编译所有内容,然后进入bin文件夹并删除skin.master.compiled,那么当您请求使用该母版页的页面时,您会收到错误"文件'Skin.master'没有已预先编译,无法请求"
我怀疑对母版页的引用是这里的问题 - 也就是说,如果一个页面引用了一个母版页,那么如果你想编译页面,那么该母版页也必须编译,但我不确定.我在这里躲起来了吗?