2011-07-04 32 views
20

Đây là một câu hỏi đơn giản, và một nhiệm vụ dường như đơn giản nhưng tôi không thể tìm thấy bất kỳ thông tin nào về cách thực hiện những gì tôi cần làm.Mango Application Tile - loại bỏ

Tôi có một ứng dụng có lát chính (khi được ghim) đôi khi cần phải là lát gạch mặt một mặt mặc định và đôi khi cần phải có thông tin được hiển thị ở mặt sau của ô. Tôi có thể thêm BackBackgroundImage, BackContent và BackTitle thành công từ ScheduledActionService, nhưng tôi không thể xóa chúng khi chúng không còn cần thiết nữa. Đây không phải là gạch phụ nên tôi không thể xóa nó và tạo lại và thêm lại.

Có ai biết nếu có thể hoàn nguyên lát hai mặt trở lại một mặt qua mã và nếu có, làm cách nào tôi có thể đạt được hành vi đó?

EDIT

Các thiết lập mà có được áp dụng từ đối tượng StandardTileData là phụ gia - nếu bạn chỉ định một tiêu đề, ví dụ, tất cả các yếu tố khác vẫn như cũ và chỉ tiêu đề được cập nhật. Tôi đã cố gắng thiết lập ba tham số xuất hiện ở mặt sau của ô xếp và không thành công một phần. Hiệu ứng là hình nền, văn bản tiêu đề và văn bản nội dung đều bị xóa, nhưng ô vẫn lật lên để hiển thị mặt trái hoàn toàn trống.

EDIT LẠI

Vì vậy, nhìn vào các tài liệu, ngói lại cư xử khác nhau để phía trước. Đặt nội dung trở lại hoặc phụ đề thành chuỗi.Empty sẽ xóa những nội dung đó. Tất cả đều tốt. Tuy nhiên, nó nói rằng "Nếu được đặt thành một URI trống, BackBackgroundImage sẽ không được hiển thị.". Làm thế nào để tôi tạo ra một Uri trống? Tôi đã thử Uri mới (chuỗi, Rỗng) nhưng điều đó tạo ra một ngoại lệ về việc cố gắng tạo ra một Uri trống rỗng - đó là những gì tôi đang cố gắng làm.

+0

bạn đang cố gắng xóa nó bằng cách nào? –

+0

Tôi đã thử đặt ba thuộc tính "Quay lại" thành null (không hoạt động), chuỗi rỗng/URI (không hoạt động). Tôi cũng đã thử tạo 2 đối tượng StandardTileData (một đối với một mặt, 1 cho hai mặt) và áp dụng chúng cho phù hợp, nhưng điều đó cũng không thành công. – ZombieSheep

Trả lời

28

OK, tôi nghĩ rằng tôi đã nhận nó, và nó xuất hiện có liên quan đến một sự thay đổi trong cách dữ liệu lát được xử lý ...

Trước đây, đặt giá trị thành chuỗi trống sẽ có hiệu lực ngay bây giờ trong ô. Đối với eaxmple, đặt title = string.Empty sẽ để lại tiêu đề hiện có tại chỗ. Bây giờ, mặc dù, nó sẽ trống ra tiêu đề. Điều đó tốt - điều đó có nghĩa là tôi có thể xóa chuỗi BackTitle và BackContent dễ dàng. Chúng tôi đang ở nửa đường.

Bây giờ, để thoát khỏi BackBackgroundImage, tài liệu nêu rõ "Nếu được đặt thành một URI trống, BackBackgroundImage sẽ không được hiển thị." - tất cả đều tốt, ngoại trừ bạn không thể tạo ra một Uri trống rỗng theo bất kỳ cách nào đơn giản. Một cách tôi đã làm cho nó hoạt động là đặt giá trị đó thành giá trị Uri không tồn tại, ví dụ:

BackBackgroundImage = new Uri("obviouslyMadeUpLocation", UriKind.Relative); 

Tôi đã dự kiến ​​sẽ ném một ngoại lệ khi bạn cố áp dụng nó vào ô, nhưng nó không - nó chỉ xóa hình nền.

Vậy là xong. Tất cả những gì tôi cần làm là gọi những điều sau đây để bỏ đặt các thuộc tính này và đặt lại ngói của tôi.

private void ResetMyMainTile() 
{ 
    ShellTile tile = ShellTile.ActiveTiles.First(); 
    StandardTileData data = new StandardTileData 
    { 
     BackBackgroundImage = new Uri("IDontExist",UriKind.Relative), 
     BackContent = string.Empty, 
     BackTitle = string.Empty 
    }; 
    tile.Update(data); 
} 
+2

Bạn có thể tạo một Uri trống như thế này: 'new Uri (" ", UriKind.Relative)' (lưu ý rằng nếu bạn chỉ định UriKind là Absolute, nó sẽ ném một ngoại lệ). – hasseg

0

Thử đặt lại toàn bộ lát (tất cả chi tiết) thành mọi thứ trước/giờ nhưng không có chi tiết nền.

Cập nhật
Điều này không làm việc ?:

ShellTile tile = ShellTile.ActiveTiles.First(); 
tile.Update(null); 

hoặc

tile.update(new StandardTileData()); 
+1

Cảm ơn đề xuất, Matt, nhưng các cài đặt này là phụ gia - nếu bạn bỏ qua một trong các tham số, giá trị trước đó của thông số vẫn tồn tại (ví dụ: chỉ đặt tiêu đề ô sẽ để nguyên tất cả các bit khác của ô). Đó là lý do tại sao tôi nghĩ rằng việc đặt chúng thành null sẽ làm thủ thuật, và nó một phần - nó loại bỏ các phần tử nhìn thấy được từ mặt sau của hình xếp, nhưng mặt sau vẫn được hiển thị dưới dạng một ô trống. :( – ZombieSheep

+0

Tôi đã cập nhật câu hỏi của mình dựa trên tài liệu. Tôi hiện đang bị kẹt cố gắng tạo "Uri trống" cho hình nền. Bất kỳ đề xuất nào về điều đó, vui lòng? – ZombieSheep

+0

@ZombieHãy trả lời câu hỏi cập nhật –

1

Cái này phù hợp với tôi.

new Uri("Background.png", UriKind.RelativeOrAbsolute); 

ShellTile TileToFind = ShellTile.ActiveTiles.First(); 

     if (TileToFind != null) 
     { 

      StandardTileData NewTileData = new StandardTileData 
      { 
       Title ="Status", 
       BackgroundImage = new Uri("Background.png", UriKind.RelativeOrAbsolute), 
       Count = 0, 
       BackTitle = "", 
       BackBackgroundImage = new Uri("doesntexist.png", UriKind.RelativeOrAbsolute), 
       BackContent = "" 
      }; 

      TileToFind.Update(NewTileData); 
     } 
Các vấn đề liên quan