为什么这个ComboBox在其他PC上的渲染方式不同?

时间:2010-11-22 08:13:33

标签: c# wpf xaml

我正在解决在WPF应用程序中定位ComboBox的PART_Popup部分的问题。它根据您运行它的系统而有所不同。我没有足够的PC来确定它背后的模式。

修改

对不起的图像感到抱歉。我要求一些更大的。

您可以像这样考虑窗口的表面区域(伪):

<Grid>
  <Column>
    <StackPanel>
        <Button>Create Story</Button>
        <Button>Continue Story</Button>
        <Button>Close Story</Button>
    </StackPanel>
  </Column>
  <Column>
    <Border>
      <Grid>
        <Row>
          <Column><TextBlock>Story Name</TextBlock></Column>
          <Column><ComboBox ItemsSource="..." /></Column>
        </Row>
        <Row>
          <Column />
          <Column><Button /></Column>
        </Row>
      </Grid>
    </Border>
  </Column>
</Grid>

PC 1 alt text

PC 2 alt text

在一台PC上,PART_Popup与Control的左边缘对齐。在另一台PC上,它与右侧对齐。 exe是完全相同的。

ComboBox使用[this style] [3]作为{DynamicResource}ToggleButtonComboBoxItem有[这些风格] [4]。

修改

对策:

  • 在LtR计算机上捕获了两个屏幕截图。
  • 在原图中,没有回车;我们评论说存在多个ComboBoxItem。抱歉照片不一致。
  • 为了清楚起见,两张照片中都有一个ComboBoxItem。尽管如此,行为与&gt;相同。 1 ComboBoxItem。
  • 我被告知,如果ComboBoxItem.Content变得太长(比这里说明的要长得多),一旦所有可用的Window空间被消耗到左边,PART_Popup将开始向右调整大小。这种情况仅在PC#2上发生

3 个答案:

答案 0 :(得分:1)

我看到2个完全不同的照片。

一个有故事按钮,另一个没有。 一个有单行文本框,另一个有多行。 然后就是你的截图太暗了......

换句话说,你真的已经尽力让其他人不清楚了。

答案 1 :(得分:0)

由于Windows语言设置或某些问题,测试系统是否以从右向左的布局运行?

答案 2 :(得分:0)

一个字符串看起来像是有回车而另一个没有。就系统而言,极其长的描述+所有关于它的一个词。在那里扔一些回报,看看它是否有变化。你可能有一些容器动态调整大小,一个巨大的词会让事情延伸。