Можно ли заставить элемент управления сеткой действовать как элемент управления контейнером? - PullRequest
2 голосов
/ 27 июля 2011

Я использую Silverlight и в конечном итоге Silverlight для телефона.

Я пытаюсь создать контейнер с границами, содержащий дочерние элементы управления.Дочерние элементы управления не должны быть видны вне границ элемента управления сетки.

Возможно ли это?Я знаю, что могу создать клип по пути, но это единственный способ.

Я использовал контейнер с прокруткой, который, казалось, работал ... несколько.

Это xaml.Я ожидаю, что вторая кнопка не будет видна во время работы приложения.

<Grid x:Name="LayoutRoot" Background="White" >
    <Grid HorizontalAlignment="Left" VerticalAlignment="Top" Height="197" Width="241" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment">
        <Button Content="Button" Margin="25,42,101,81"/>
        <Button Content="Button" Height="76" Margin="25,0,63,-83" VerticalAlignment="Bottom"/>
    </Grid>
</Grid>

Ответы [ 3 ]

2 голосов
/ 27 июля 2011

Использование UIElement.ClipToBounds

http://msdn.microsoft.com/en-us/library/system.windows.uielement.cliptobounds.aspx

<Grid ClipToBounds="True">

    ...

</Grid>
0 голосов
/ 29 июля 2011

Я нашел решение, но хотел бы использовать другое решение.Я использовал scrollviewer и скрыть полосы прокрутки.Это кажется тяжелым решением, но пока будет работать.Мне определенно нужно будет найти что-то более легкое, когда я перенесу это на Windows Phone 7.

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d"
x:Class="SilverlightApplication2.MainPage"
Width="640" Height="480">
<Grid x:Name="LayoutRoot" Background="White" >
    <ScrollViewer x:Name="scrollViewer" Margin="0,0,158,0" VerticalScrollBarVisibility="Disabled" Height="123" VerticalAlignment="Top">
        <Grid x:Name="grid" VerticalAlignment="Top" MaxWidth="169" MaxHeight="145" Height="141" RenderTransformOrigin="0.5,0.5">
            <Grid.RenderTransform>
                <CompositeTransform/>
            </Grid.RenderTransform>
            <Button Content="Button" Margin="25,42,0,60" HorizontalAlignment="Left" Width="71"/>
            <Button Content="Button" Height="76" Margin="25,0,0,-83" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="81"/>
        </Grid>
    </ScrollViewer>
</Grid>

0 голосов
/ 27 июля 2011

Поскольку вы, похоже, спрашиваете, как по умолчанию работает элемент управления Grid, например:

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <DockPanel Margin="50" Background="Azure" > 
    <Grid>
      <TextBlock>The only part of this control that gets rendered is that which is inside the bounds of the Grid.</TextBlock>
    </Grid>
  </DockPanel>
</Page>

Я могу только предположить, что вы спрашиваете что-то еще.Но что?

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