#silverlight
#silverlight
Вопрос:
Невероятно, что такой пример кода даже не работает.
Я поместил это внутри сетки, но я не вижу ни одной строки (на самом деле код взят из MSDN):
<Canvas Height="103" HorizontalAlignment="Left" Margin="30,166,0,0" Name="canvas1" VerticalAlignment="Top" Width="180">
<Line
X1="0" Y1="10"
X2="5" Y2="10"
Stroke="Black"
StrokeThickness="4" />
</Canvas>
Невероятно, что такая простая вещь, как эта, может быть настолько глючной, так что я что-то пропустил, см. Картинку ниже? (Все остальное в silverlight у меня работает нормально):
Обновление: ошибка подтверждена. Совершенно невероятно, что MS это не исправила!
Комментарии:
1. У меня ваш код работает нормально, я вижу маленький черный квадрат. Я предлагаю вам убедиться, что ваша машина обновлена исправлениями и пакетами обновления.
2. Другие подтвердили, что это работает не только ВНЕ CANVAS!
3. Я думаю, вам нужно уточнить это утверждение. Код, который вы показали выше, работает локально, и я не могу воспроизвести то, что вы видите. Обычно это указывает на факторы окружающей среды.
4. Я хотел бы отметить, что внутри Blend это отображается без проблем, но в моей Visual Studio это на самом деле работает не так, как предполагалось. Я думаю, что это не столько ошибка Silverlight, сколько дефект VS. Однако, когда я запускаю проект в VS, он выглядит нормально.
Ответ №1:
Это действительно появляется. Ваша линия представляет собой очень маленькую точку шириной в 5 пикселей. Попробуйте изменить координаты, чтобы нарисовать более длинную линию.
Комментарии:
1. Хорошо, я больше ничего не делаю, см. Картинку выше (я на silverlight 4)
2. его ширина по-прежнему составляет всего 5 пикселей, сделайте X2 = «85»
3. @Mark сказал это правильно. Это все еще 5 пикселей. Я думаю, вам нужно было бы указать ширину и высоту элемента управления line. Попробуйте задать ширину и высоту 200 для элемента управления line и координаты X1 = 0, Y1 = 0 и X2 = 50, Y2 = 50
4. X2 = 85 ничего не меняет
5. @user310291 не могли бы вы, пожалуйста, попробовать то, что я сказал в последнем комментарии?
Ответ №2:
Другие подтвердили, что в последней версии Silverlight это работает только за ПРЕДЕЛАМИ CANVAS! Так что действительно это огромная ошибка.
Комментарии:
1. Отображается во время выполнения и в Blend без проблем, но в VS designer он работает не так, как предполагалось.
2. Совершенно невероятно, что MS это не исправила!
Ответ №3:
Я столкнулся именно с этим, и вот мое решение:
<Canvas Height="103" Width="180" HorizontalAlignment="Left" Margin="30,166,0,0" Name="canvas1" VerticalAlignment="Top" >
<Line Height="103" Width="180" X1="0" Y1="10" X2="5" Y2="10" Stroke="Black" StrokeThickness="4" />
</Canvas>
Таким образом, вы должны установить одинаковый размер для Line и Canvas. На самом деле, строка помещается туда, куда вы помещаете, но она не отображается, потому что не имеет размера.