WPF Canvas, поскольку содержимое внутри кнопки не отображается, если соседний элемент заполняет пространство внутри контейнера (DockPanel, Grid) - PullRequest
0 голосов
/ 26 мая 2020

У меня есть такая кнопка:

  <StackPanel Orientation="Vertical" Width="200">
    <DockPanel LastChildFill="False">
      <Grid Width="81" Background="Blue" DockPanel.Dock="Right" />
      <Button  Width="120"  DockPanel.Dock="Left">
        <Grid>
          <TextBlock Text="Button" ></TextBlock>
          <Canvas Margin="120,0,0,0" >
            <TextBlock Text="I want to break free" />
          </Canvas>
        </Grid>
      </Button>
    </DockPanel>
  </StackPanel>

В этом случае содержимое холста не будет отображаться, и его содержимое не будет видно. Однако, если я изменю длину сетки с 81 на 80, это сработает.

Он также будет работать в этом сценарии:

    <Grid Width="200">
      <Grid Width="81" Background="Blue" DockPanel.Dock="Right" HorizontalAlignment="Right" Grid.Column="1" />
      <Button  Width="120"  HorizontalAlignment="Left">
        <Grid>
          <TextBlock Text="Button" ></TextBlock>
          <Canvas Margin="120,0,0,0" >
            <TextBlock Text="I want to break free" />
          </Canvas>
        </Grid>
      </Button>
    </Grid>

Canvas также будет работать, если не внутри кнопки:

  <StackPanel Orientation="Vertical" Width="200">
    <DockPanel LastChildFill="False" Height="42">
      <Grid Width="81" Background="Blue" DockPanel.Dock="Right" />
      <Canvas Margin="120,0,0,0"  >
        <TextBlock  Text="I want to break free" />
      </Canvas>
    </DockPanel>
  </StackPanel>

Почему он ведет себя так внутри кнопка? Как это можно исправить для желаемого поведения при отображении холста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...