C# wpfdatagrid:奇怪的风格行为

C# wpfdatagrid:奇怪的风格行为,c#,wpf,vb.net,xaml,datagrid,C#,Wpf,Vb.net,Xaml,Datagrid,我在WPF中的datagrid控件中有一个奇怪的行为。基本上,我将自定义对象添加到datagrid中,datagrid只包含一列。在本专栏中,我在stackpanel中可视化了一个图像和一个文本块。它工作正常,直到我定义了图像的宽度。然后我得到了 希望有人能帮助我。提前谢谢 以下是用户控件的代码摘录: datagrid的样式模板: 滚动条样式: 更新 我注意到,当我加载超出当前单元格宽度的项目时,效果消失了。单元格似乎根据内容定义了其宽度(这是合乎逻辑的)。但是如何定义单元格的最大

我在WPF中的datagrid控件中有一个奇怪的行为。基本上,我将自定义对象添加到datagrid中,datagrid只包含一列。在本专栏中,我在stackpanel中可视化了一个图像和一个文本块。它工作正常,直到我定义了图像的宽度。然后我得到了

希望有人能帮助我。提前谢谢

以下是用户控件的代码摘录:


datagrid的样式模板:


滚动条样式:


更新

我注意到,当我加载超出当前单元格宽度的项目时,效果消失了。单元格似乎根据内容定义了其宽度(这是合乎逻辑的)。但是如何定义单元格的最大宽度不超过datagrid边界,最小宽度使用整个datagrid宽度

[此处][2]您可以看到,由于溢出,拐角半径仅显示在左侧,而不显示在右侧

更新2

我想实现的是

附加信息:Datagrid位于用户控件中,该控件绑定到TabControl的内容。以下是mainWindow.xaml中的代码:


尝试在
数据模板的内部使用
网格
而不是
堆栈面板

<DataGrid.Columns>
   <DataGridTemplateColumn>
       <DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
             <Grid>        
                <Grid.ColumnDefinitions>
                   <ColumnDefinition Width="Auto"/>
                   <ColumnDefinition Width="Auto"/>            
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0" Source="{Binding itemImage}" MaxHeight="20" 
                       MaxWidth="20" />
                <TextBlock Grid.Column="1" Text="{Binding itemName}"
                                   VerticalAlignment="Center"
                                   Width="Auto"
                                   Margin="5, 0, 0, 0" />
             </Grid>
         </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
   </DataGridTemplateColumn>
</DataGrid.Columns>

好的,我解决了这个问题。似乎我弄乱了datagrid的行样式模板,忘记给datagrid的
DataGridTemplateColumn
一个定义的宽度:

datagrid行样式模板中的ScrollViewer:


userControl.xaml中的Datagrid列定义



谢谢你的回答

您将如何解释:
您是指滚动条样式的代码吗?我添加到上面的线程中。效果相同,但我注意到了一些东西。我已将新图像附加到主帖子。@ms_dos您不希望在
DataGrid的
Border
image
之间有空格吗?我希望