无法设置网格背景。 WPF中可能存在错误?

时间:2013-11-18 21:47:37

标签: wpf visual-studio xaml

我在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图像。为什么会这样?

0 个答案:

没有答案