В вашем коде вы определили drawMap
функцию, но она не вызывается. Вызовите функцию drawMap для onload
изображения.
const canvas = document.getElementById("GameCanvas");
const ctx = canvas.getContext("2d");
var testMap = [
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1]
];
const testBlock = new Image();
testBlock.src = "https://mdn.mozillademos.org/files/5397/rhino.jpg"
testBlock.onload = drawMap;
let posX = 0;
let posY = 0;
function drawMap () {
for (let i = 0; i < testMap.length; i++) {
for (let j = 0; j < testMap[i].length; j++) {
if (testMap[i][j] == 1) {
ctx.drawImage(testBlock, 0, 0, 16, 16, posX, posY, 16, 16);
}
posX += 16;
}
posX = 0;
posY += 16;
};
}
<canvas id = "GameCanvas" width = "800" height = "480"></canvas>
Нет, Вы не можете встроить Silverlight из браузера в WPF. sllauncher.exe автономный кадр имеет специальный обработчик для offline://(имя хоста). (пересмотр) / URL, данный ему, чтобы позволить приложению иметь все функции режима из браузера (как дополнительный доступ клавиатуры). Если Вы не сможете найти способ встроить это приложение в Ваше приложение, Вы не сможете выйти; если Вы знаете некоторый способ сделать это, адрес для этого приложения:
C:\Program Files\Microsoft Silverlight\3.0.40307.0\sllauncher.exe
Как другие сказали, однако, можно встроить управление Silverlight в странице HTML и этом в элементе WebBrowser. Будьте осторожны с этим методом, однако, так как в настоящее время существует поддержка № x64 Silverlight и если абсолютно необходимо сделать, это удостоверяется, что скомпилировало специально для x86.
Я предполагаю (да, позор мне!), но можно, вероятно, поместить веб-браузер WPF на окно и перейти к приложению Silverlight в нем.
Это - поддерживаемый сценарий; в недавней статье MSDN говорилось, что этот сценарий поддерживался, и сценарии как это вынудили команду CLR позволить, несколько СБРАСЫВАЮТ загруженный в единственный процесс.
Кажется что приложения SLOOB, запущенные в хост-процессе (C:\Program Files\Microsoft Silverlight\3.0.40307.0\sllauncher.exe). Это размещает и песочницы приложение.
Я подозреваю, что не будет возможно разместить его самостоятельно - извините, если это будет немного близко к предположению, но за исключением выполнения веб-браузера хостинга в Вашем приложении WPF я не могу думать о пути вокруг требования игры в песочнице.
HTH
Можно разместить управление браузером в приложении Windows и загрузить Silverlight в управлении браузером. Это - то, как живая сетка собирается сделать это.