как получить доступ к сеткам на Silverlight - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть кнопка с именем test button. Когда я нажимаю на нее, я хочу показать сетку, видимость которой установлена ​​на 0

Я создал событие кнопки мыши (ниже), но моя Сетка (testGrid)отсутствует в проекте.

private void testButton(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {       
           testGrid.Opacity = 1;                                                                              
        }

он выделяет testGrid красным

новым для SL, поэтому не уверен, что здесь происходит

** EDIT **

xml для Сетки

    <Grid x:Name="testGrid" HorizontalAlignment="Left" Width="150" Margin="950,-77,0,0" Height="77" VerticalAlignment="Top" Opacity="0">

    </Grid> 



<Image x:Name="testButton" HorizontalAlignment="Right" Margin="0,1,180,3"  Stretch="Fill" Width="53" Height="49"  Cursor="Hand" Opacity="0.8" >

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Причина, по которой ваша сетка может быть недоступна в файле .cs, заключается в том, что вы изменили имя класса в файле .cs, но не в директиве Xaml в верхней части файла .xaml.

Если эти два совпадения не совпадают, Visual Studio не сможет связать два файла, поэтому вы не сможете увидеть элемент управления сеткой в ​​приведенном ниже коде.

Другие элементы в вашем кодерассмотреть:

Хотя Opacity сработает, альтернатива, которую я использую чаще всего:

Это покажет сетку.

testGrid.Visibility = Visibility.Visible;

Это скроет сетку.

testGrid.Visibility = Visibility.Collapsed;

Кроме того, ваша «кнопка» - это тег изображения, а не кнопка.Это изображение с тем же именем, что и метод, который вы пытаетесь вызвать.Вам нужно будет либо изменить свое изображение, чтобы разрешить событие при нажатии, либо изменить его на кнопку, что-то вроде

<Button Click="TestBUtton" Text="MyButton" />

И я бы ввел это непосредственно в Xaml, чтобы при вводеclick Обработчик событий автоматически генерирует для вас метод в коде.

1 голос
/ 24 ноября 2011

попробуйте это: В XAML

<Grid x:Name="testGrid" HorizontalAlignment="Left" Width="150" Margin="950,-77,0,0" Height="77" VerticalAlignment="Top" Opacity="0">
</Grid>
<Image x:Name="testButton" HorizontalAlignment="Right" Margin="0,1,180,3"  Stretch="Fill" Width="53" Height="49"  Cursor="Hand" Opacity="0.8" MouseLeftButtonDown="testButton" />

по чс

private void testButton(object sender, System.Windows.Input.MouseButtonEventArgs e){       
       testGrid.Visibility = Visibility.Visible;
}
...