我在WPF中有一点像XAML
<TabItem Header="Remote Mode">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0" Grid.Row="0">
<Grid.Background>
<ImageBrush ImageSource="/ETest;component/Images/RemoteLarge.png"/>
</Grid.Background>
</Grid>
</Grid>
不幸的是,现在,当我尝试切换到上面显示的选项卡时,Visual Studio导航到XAML中的代码,但拒绝切换到设计器中的选项卡。我也试过构建应用程序并从那里切换标签,但这似乎也不起作用。为什么我现在不能切换标签?如果我从XAML中删除图像,我可以再次切换标签。
作为备注:图片本身是817x2167 .png。问题可能在那里吗?
编辑:遗憾的是,我在星期一之前无法访问原始项目。我有一份我正在使用的图像副本,并在基本的WPF应用程序中使用它进行了测试。以下XAML完美无缺:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="500" Width="750">
<Grid>
<TabControl>
<TabItem Header="Test1" />
<TabItem Header="Remote Mode">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0" Grid.Row="0">
<Grid.Background>
<ImageBrush ImageSource="/WpfApplication1;component/Images/RemoteLarge.png"/>
</Grid.Background>
</Grid>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
当我有机会时,我会尝试发布更多原始项目。也许问题出在应用程序的其他地方。
编辑2 :这是完整的XAML:
<Window x:Class="ETest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:c="clr-namespace:ETest.Controls.AutoSequence"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
MinHeight="550"
MinWidth="835"
Height="550"
Width="835"
DataContext="{Binding Main, Source={StaticResource Locator}}">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid x:Name="LayoutRoot"
Background="#C0FFC0">
<Grid.RowDefinitions>
<RowDefinition Height="23" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Menu Grid.Row="0">
<Menu.Background>
<LinearGradientBrush EndPoint="0,1"
StartPoint="0,0">
<GradientStop Color="#E8E8E8"
Offset="0.528"/>
<GradientStop Color="#F5F5F5"
Offset="0.01"/>
<GradientStop Color="#E0E0E0"
Offset="1"/>
<GradientStop Color="#FFFFFF"
Offset="1"/>
</LinearGradientBrush>
</Menu.Background>
</Menu>
<TabControl Grid.Row="1">
<TabItem Header="AutoSequence">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ListBox Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2">
</ListBox>
<Grid Grid.Column="1" Grid.Row="0" Margin="0,0,20,0">
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<Label DockPanel.Dock="Left"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Content="Drag Steps Here to make an Autosequence" />
<Button DockPanel.Dock="Right"
HorizontalAlignment="Right"
Margin="0,0,0,4"
Width="100"
Content="Start Test"/>
<Button DockPanel.Dock="Right"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Margin="0,0,40,0"
Width="150" Height="23"
Content="**** Interface"/>
</DockPanel>
<ListBox Grid.Row="1" />
</Grid>
<GroupBox Grid.Column="1"
Grid.Row="1"
Header="Step Configuration">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="23"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<Label DockPanel.Dock="Left"
HorizontalAlignment="Left"
Content="Step Name" />
<Button DockPanel.Dock="Right"
HorizontalAlignment="Right"
Width="75"
Content="Save Step" />
<TextBox />
</DockPanel>
<Grid Grid.Row="1">
<c:Message/>
</Grid>
</Grid>
</GroupBox>
</Grid>
</TabItem>
<TabItem Header="Remote Mode">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0" Grid.Row="0">
<Grid.Background>
<ImageBrush ImageSource="/ETest;component/Images/RmtLrg.png"/>
</Grid.Background>
</Grid>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
编辑3 :
事情变得奇怪了。我删除了该文件,从原始应用程序中导出了另一个副本,将其命名为RmtLrg.png,添加了该文件,并且该文件无法正常工作。我尝试双击解决方案资源管理器中的文件来查看它,然后切换回Visual Studio中的MainWindow。图像已加载到设计器中,我可以像往常一样切换标签。
一瞬间它正在工作,但是,在一阵兴奋中,我构建了应用程序。我试图在其中切换标签,但这失败了。之后重新检查设计器,我注意到图像已不再加载,我再次无法切换到相关的TabControl选项卡。
编辑4 :
问题仍在发生,而且从字面上看,似乎图像太大而无法设置为网格背景(即使这没有意义)。我尝试过Png,Jpg和Gif格式,但都没有。在项目中加载其他较小的图像可以毫无问题地完美运行。
编辑5 :
奇怪的是,加载3000x3000图像非常有效。到目前为止唯一无法加载的图像是我的817x2167图像。为什么会这样?